pulseui icon indicating copy to clipboard operation
pulseui copied to clipboard

Git/Diff file based source control and release.

Open ryanhamilton opened this issue 3 years ago • 6 comments

User Reported user-pn.

I find the pulse database opaque. To have reassurance of what is stored and to allow diffs between versions I would like to see textual files representing the data. This would allow me to see in source control what is changing.

ryanhamilton avatar Dec 30 '22 18:12 ryanhamilton

user-ag would like to:

  • Copy deploy from dev to prod using JSON. Possibly replacing data source names in the JSON.
  • Have the ability to export / import.

ryanhamilton avatar Feb 21 '24 17:02 ryanhamilton

user-ev said git based deploy is very important

  • had a really great example of pre/post commit hooks for checking that connections and queries are valid.
  • and that there were no passwords in the query.
  • Changing connection details when migrating from UAT to PROD?

ryanhamilton avatar Apr 05 '24 21:04 ryanhamilton

Workflows

  1. Create a new dashboard.
  2. Update an existing dashboard
  3. From original created in UI,
  4. From git based
  5. Update in git to add non-existant connection or broken query. or an invalid json file.
  6. Change title/owner of dashboard.
  7. Delete a dashboard.
  8. Migrating dashboards from Dev -> UAT -> PROD

Questions:

  • Pulse as code? Gitops? Allow everything to be file based? EMails? Alerts? Users?
  • How does this conflict with env/file/UI/REST based config.
  • e.g. Settings servers via REST vs setting via file. Can't save connection passwords in file?
  • Integrate with actual git using jgit to push/pull or file based.
  • Users with data in the dashboard? Or where they don't want others to know dashboard exists?

Options:

A. Built-in git workflow and storage B. Do not support it C. File based system that pushes dashboards into Pulse. D. API based push of dashboards into pulse. E. Actual Git based push / pull using JGit.

ryanhamilton avatar Apr 05 '24 22:04 ryanhamilton

File or Git based seem only sensible options.

File Proposal

Folder structure is:

/pulseapp
/pulseapp/dash/  - All Dashboards below here
/pulseapp/dash/2-blotter - Dashboard 2 with handy name after heyphen

/pulseapp/dash/2-blotter contents:

{
    id: number,
    version: number,
    name: string,
    defaultParams: string,
    userName: string | undefined,
    teamName: string | undefined,
    tags: string,
    comment: string,
    ppublic:boolean,
    data:{ 
            cssStyle:string|undefined, 
            forcedTheme:ThemeType|undefined, 
            tabSetEnableTabStrip:boolean|undefined, 
            cssURLs:string|undefined 
            tabbDetails:[
                   { name:string, color:string|undefined, jsonmodel:IJsonModel },
                   { name:string, color:string|undefined, jsonmodel:IJsonModel },
            ]
   };
}

ryanhamilton avatar Apr 05 '24 22:04 ryanhamilton

  • user-rd user-sit to allow tracking changes and what is released.

ryanhamilton avatar Aug 16 '24 14:08 ryanhamilton

user-ro user-bar needs this to producitonise application.

ryanhamilton avatar Sep 23 '24 09:09 ryanhamilton

Storing dashboards in git released 3.14 https://www.timestored.com/pulse/help/admin/gitops-export-git

ryanhamilton avatar Mar 09 '25 09:03 ryanhamilton