Commit Graph

378 Commits

Author SHA1 Message Date
Torkel Ödegaard
689e366f59 refactoring: updated api url routes so they do not conflict with slug route 2017-06-06 09:51:14 +02:00
Torkel Ödegaard
c87418d060 refactoring: Dashboard history restore operation is now reusing existing
operations instead of duplicating a bunch of get & save logic.
2017-06-05 17:45:27 +02:00
Torkel Ödegaard
f3980504e2 Merge branch 'master' into walmartlabs-master 2017-06-05 13:43:00 +02:00
sanchitraizada
77c046aac6 Implement review feedback 2017-06-01 17:57:09 -04:00
Torkel Ödegaard
0d39852ef4 fix: fixed test data fake metric query, fixes #8474 2017-05-29 10:48:38 +02:00
Ben Tranter
b6e46c9eb8 History and Version Control for Dashboard Updates
A simple version control system for dashboards. Closes #1504.

Goals

1. To create a new dashboard version every time a dashboard is saved.
2. To allow users to view all versions of a given dashboard.
3. To allow users to rollback to a previous version of a dashboard.
4. To allow users to compare two versions of a dashboard.

Usage

Navigate to a dashboard, and click the settings cog. From there, click
the "Changelog" button to be brought to the Changelog view. In this
view, a table containing each version of a dashboard can be seen. Each
entry in the table represents a dashboard version. A selectable
checkbox, the version number, date created, name of the user who created
that version, and commit message is shown in the table, along with a
button that allows a user to restore to a previous version of that
dashboard. If a user wants to restore to a previous version of their
dashboard, they can do so by clicking the previously mentioned button.
If a user wants to compare two different versions of a dashboard, they
can do so by clicking the checkbox of two different dashboard versions,
then clicking the "Compare versions" button located below the dashboard.
From there, the user is brought to a view showing a summary of the
dashboard differences. Each summarized change contains a link that can
be clicked to take the user a JSON diff highlighting the changes line by
line.

Overview of Changes

Backend Changes

- A `dashboard_version` table was created to store each dashboard
  version, along with a dashboard version model and structs to represent
  the queries and commands necessary for the dashboard version API
  methods.
- API endpoints were created to support working with dashboard
  versions.
- Methods were added to create, update, read, and destroy dashboard
  versions in the database.
  - Logic was added to compute the diff between two versions, and
  display it to the user.
  - The dashboard migration logic was updated to save a "Version
  1" of each existing dashboard in the database.

Frontend Changes

- New views
- Methods to pull JSON and HTML from endpoints

New API Endpoints

Each endpoint requires the authorization header to be sent in
the format,

```
Authorization: Bearer <jwt>
```

where `<jwt>` is a JSON web token obtained from the Grafana
admin panel.

`GET "/api/dashboards/db/:dashboardId/versions?orderBy=<string>&limit=<int>&start=<int>"`

Get all dashboard versions for the given dashboard ID. Accepts
three URL parameters:

- `orderBy` String to order the results by. Possible values
  are `version`, `created`, `created_by`, `message`. Default
  is `versions`. Ordering is always in descending order.
- `limit` Maximum number of results to return
- `start` Position in results to start from

`GET "/api/dashboards/db/:dashboardId/versions/:id"`

Get an individual dashboard version by ID, for the given
dashboard ID.

`POST "/api/dashboards/db/:dashboardId/restore"`

Restore to the given dashboard version. Post body is of
content-type `application/json`, and must contain.

```json
{
  "dashboardId": <int>,
  "version": <int>
}
```

`GET "/api/dashboards/db/:dashboardId/compare/:versionA...:versionB"`

Compare two dashboard versions by ID for the given
dashboard ID, returning a JSON delta formatted
representation of the diff. The URL format follows
what GitHub does. For example, visiting
[/api/dashboards/db/18/compare/22...33](http://ec2-54-80-139-44.compute-1.amazonaws.com:3000/api/dashboards/db/18/compare/22...33)
will return the diff between versions 22 and 33 for
the dashboard ID 18.

Dependencies Added

- The Go package [gojsondiff](https://github.com/yudai/gojsondiff)
  was added and vendored.
2017-05-24 19:14:39 -04:00
Torkel Ödegaard
0156a94a49 annotations: you can now read annoations via manually created annoation query 2017-04-12 15:46:41 +02:00
Alexander Zobnin
d553498a33 graph(add annotation): initial backend implementation #1286 2017-04-10 20:22:58 +03:00
Torkel Ödegaard
bd4f073425 mysql: minor update 2017-03-30 20:23:40 +02:00
Daniel Lee
193d468ed3 admin: adds paging to global user list
Currently there is a limit of 1000 users in the global
user list. This change introduces paging so that an
admin can see all users and not just the first 1000.

Adds a new route to the api - /api/users/search that
returns a list of users and a total count. It takes
two parameters perpage and page that enable paging.

Fixes #7469
2017-02-13 12:59:36 +01:00
huydx
143cbe921f (feat) support datasource delete by name api 2017-02-10 23:30:14 +09:00
Torkel Ödegaard
8a95c563bb Merge branch 'master' into websocket 2017-01-31 08:56:49 +01:00
Pavlos Daoglou
3e741315b4 [3743] Adds support for user search based on login or email (#7334)
* [3743] Adds support for user search based on login or email

* Use query parameter instead

* Use macaron Query() instead
2017-01-31 06:25:55 +01:00
Torkel Ödegaard
b8f559aecb feat(plugins): made notifiers more pluggable and easier to support many of them, new ones can now be added without modifying any existing file, #7162 2017-01-06 12:04:25 +01:00
Torkel Ödegaard
fad07f0d15 refactor(http): refactoring http server 2016-12-21 14:36:32 +01:00
bergquist
a2257ec3d0 tech(alerting): renames pause all method 2016-12-19 15:17:49 +01:00
bergquist
ecdf1888c4 feat(alerting): removes pause per datasource 2016-12-19 13:24:45 +01:00
bergquist
fb6aa0e026 feat(api): adds endpoint for mass pausing alerts
ref #6589
2016-12-16 15:00:58 +01:00
Torkel Ödegaard
22bf6420f1 Merge branch 'master' of github.com:grafana/grafana 2016-12-08 10:25:26 +01:00
bergquist
8ee85626f2 fix(api): return correct json info after updating datasource
closes #6869
2016-12-07 18:09:17 +01:00
Torkel Ödegaard
fd512457d8 Merge remote-tracking branch 'origin/master' into getting-started-panel-css2 2016-11-18 16:31:54 +01:00
Torkel Ödegaard
e3564d12a1 fix(404): fixed 404 page 2016-11-16 17:09:00 +01:00
Torkel Ödegaard
fb57bf77da ux(getting started): progress on getting started panel and persited help flag states, #6466 2016-11-09 10:41:39 +01:00
bergquist
b2d5b920f5 feat(alerting): allow editor to modify notifications
closes #6314
2016-10-19 08:01:31 +02:00
Torkel Ödegaard
4c26c55fea fix(api): minor change to how pause alert was done 2016-10-14 09:58:22 +02:00
Torkel Ödegaard
c9d7eb0a7a feat(alerting): added clear history button to alert state history view, #6244 2016-10-14 09:33:42 +02:00
bergquist
c6cf7647ff feat(alerting): pausing alerts requires alert id 2016-10-11 10:53:24 +02:00
bergquist
804797245d feat(alerting): make it possible to pause from alert tab 2016-10-11 08:40:38 +02:00
bergquist
264590a9c2 feat(alerting): add paused api endpoint 2016-10-10 14:26:09 +02:00
Torkel Ödegaard
7c339f0794 feat(alerting): show alertin state in panel header, closes #6136 2016-09-30 17:37:47 +02:00
Torkel Ödegaard
3ecd96e682 feat(testdata): lots of work on new test data data source and scenarios 2016-09-27 18:17:39 +02:00
Carl Bergquist
d6a0ec85c4 Merge pull request #6111 from grafana/pluginreadme
allow non-admin users to view plugin readme
2016-09-22 19:51:47 +02:00
Dan Cech
2c3dd84ebb allow non-admin users to view plugin readme 2016-09-22 13:46:11 -04:00
Torkel Ödegaard
936146768f fix(snapshots): fixed issue with viewing embedded/solo/png panel from snapshot without login, fixes #3769 2016-09-22 11:46:58 +02:00
Torkel Ödegaard
d60bd77658 feat(annotations): added support to show grafana stored annotations in graphs, #5982 2016-09-08 11:25:45 +02:00
bergquist
d11bc57c37 feat(notifications): make it possible to send test alert notifications
closes #5847
2016-09-05 14:45:15 +02:00
bergquist
11a4ff0f8a feat(alerting): add basic UI for history in alert tab
ref #5850
2016-08-30 13:22:59 +02:00
bergquist
650a87dc05 feat(alerting): add alert history api endpoint
ref #5850
2016-08-30 09:32:56 +02:00
chrismartin0077
0050707134 feat(api) HEAD response, fixes #3854 2016-08-29 06:07:44 -07:00
bergquist
0cbedb4473 chore(api): remove commented endpoints 2016-08-22 16:56:28 +02:00
Torkel Ödegaard
7eb2d2cf47 feat(alerting): working on state management 2016-07-22 13:14:09 +02:00
Torkel Ödegaard
9e91aacd34 feat(alerting): progress on testing alerts 2016-07-21 10:29:11 +02:00
Torkel Ödegaard
fb636344a6 feat(alerting): began work on testing alert rule from UI without having to save it 2016-07-20 16:13:36 +02:00
Torkel Ödegaard
f13b869aa4 feat(alerting): work on alerting 2016-07-14 13:32:16 +02:00
Torkel Ödegaard
624cd6fc0a feat(alerting): cleanup, removed alert changes table and code 2016-07-13 11:58:55 +02:00
Torkel Ödegaard
d9096110f8 Merge branch 'master' into alerting
Conflicts:
	pkg/api/dashboard.go
	pkg/models/dashboards.go
	pkg/services/sqlstore/dashboard.go
2016-07-11 18:28:07 +02:00
Torkel Ödegaard
d44325affd feat(apps): progress on app dashboard imports 2016-07-08 09:35:06 +02:00
bergquist
a18506e2e4 feat(alerting): changing notifications should require org admin 2016-06-20 11:32:55 +02:00
bergquist
0c5da9155f feat(alerting): only expose DTO info when requesting all notifications 2016-06-20 11:31:20 +02:00
bergquist
96e5ad3f5c Merge branch 'alerting' into alerting_notifications 2016-06-20 10:45:05 +02:00
bergquist
dd8c3d0355 Merge branch 'master' into alerting 2016-06-20 10:44:48 +02:00
Torkel Ödegaard
9f9fca1e76 feat(datasource): added suggest urls for each data source, #4577 2016-06-17 13:35:29 +02:00
bergquist
b035074613 tech(alerting): disable update state api 2016-06-16 17:02:45 +02:00
bergquist
a0418da160 Merge branch 'alerting' into alerting_notifications 2016-06-16 16:49:16 +02:00
bergquist
8ec311ade4 Merge branch 'master' into alerting 2016-06-16 16:29:41 +02:00
bergquist
b907ce341c feat(alerting): enables deletes for alert notifications 2016-06-16 15:21:44 +02:00
bergquist
7f767224af feat(alerting): basic support for creating and updating notifications 2016-06-16 14:29:20 +02:00
bergquist
a3b7ea7704 feat(alerting): skeleton for alert notification configuration page 2016-06-16 08:16:16 +02:00
Torkel Ödegaard
ec0b09450c Merge branch 'export-dashboard'
Conflicts:
	conf/defaults.ini
	pkg/setting/setting.go
	public/app/core/components/grafana_app.ts
	public/app/core/core.ts
	public/app/features/dashboard/dashboardCtrl.js
2016-06-16 08:06:43 +02:00
Torkel Ödegaard
0667d73660 Merge branch 'new-logger' into alerting_definitions
Conflicts:
	pkg/api/api.go
	pkg/setting/setting.go
2016-06-07 13:31:56 +02:00
Torkel Ödegaard
3dc7706c45 feat(loggin): improved http request panic handling 2016-06-07 10:05:10 +02:00
Torkel Ödegaard
34e17f7282 feat(alerting): requests looks to be working again 2016-06-06 17:11:46 +02:00
Torkel Ödegaard
70cb8400c3 feat(alerting): changed name of root Alerts nav item and page from Alerts to Alerting 2016-06-06 09:17:29 +02:00
Torkel Ödegaard
f36a44c49a Merge branch 'master' into alerting_definitions
Conflicts:
	conf/defaults.ini
	pkg/api/dashboard.go
2016-06-06 08:43:01 +02:00
Torkel Ödegaard
e0c6048820 feat(instrumentation): added gauge and http endpoint 2016-06-03 16:15:36 +02:00
Torkel Ödegaard
1a05ae2eaa feat(instrumentation): more work 2016-06-03 15:06:57 +02:00
bergquist
1686d86c3b Merge branch 'master' into alerting_definitions 2016-05-30 08:26:08 +02:00
Torkel Ödegaard
e83d13848e Merge branch 'master' into export-dashboard
Conflicts:
	public/app/features/dashboard/submenu/submenu.ts
2016-05-26 14:22:22 +02:00
Mukesh
4038b4d17e Set active org through admin api (#5179) 2016-05-26 06:51:23 +02:00
Torkel Ödegaard
ba6573af61 Merge branch 'master' into export-dashboard
Conflicts:
	public/app/features/dashboard/submenu/submenu.ts
2016-05-25 12:32:56 +02:00
bergquist
8c2b6b532d fix(preferences): fixes broken default home dashboard
closes #5167
2016-05-25 09:56:45 +02:00
Torkel Ödegaard
855e913bbd feat(dashboards): began work on dashboard list 2016-05-19 11:03:10 +02:00
bergquist
1fe2055743 tech(alerting): disable DEL for alert rules in the api 2016-05-10 15:02:11 +02:00
bergquist
1bb8bc58b8 feat(alerting): add parameteters for filtering alerts 2016-05-10 09:45:56 +02:00
bergquist
47070f2d1f chore(alerting): struct names and url refactoring 2016-05-09 11:25:21 +02:00
bergquist
27274f37e8 feat(alerting): update paths for alert state 2016-05-06 14:37:41 +02:00
Torkel Ödegaard
bb6f4fff87 feat(export/import): minor progress 2016-05-03 16:40:21 +02:00
bergquist
743a6fa37c feat(alerting): add support for deleting alert rules 2016-05-02 16:07:19 +02:00
bergquist
f442adca47 feat(alerting): adds api endpoints for alerts per dashboard and panel 2016-04-28 15:13:42 +02:00
bergquist
ecfbc2edca feat(alerting): adds alert history page 2016-04-28 11:42:03 +02:00
bergquist
0f0fa0c257 feat(alerting): adds endpoint for getting alert states log 2016-04-28 10:59:46 +02:00
bergquist
e7be7d2835 feat(alerting): add api endpoint for alert state 2016-04-28 08:23:50 +02:00
bergquist
6a5ecb3fca feat(alerting): adds basic page for listing alerts 2016-04-27 13:02:28 +02:00
bergquist
973db1ac38 feat(alerting): add api route for alert changes 2016-04-27 08:59:33 +02:00
bergquist
9b50313f11 feat(alerting): add api endpoints for listing alerts 2016-04-26 17:36:50 +02:00
Torkel Ödegaard
d9ad4cf2fc fix(): made plugin settings api call accessable for viewer roles 2016-04-13 13:03:41 -04:00
Torkel Ödegaard
10131aa8a0 fix(pluginlist): fixed issue with home dashboard and new pluginlist panel that casued permission denied error for non admin users, fixes #4686 2016-04-13 12:23:29 -04:00
Torkel Ödegaard
12800f831a Merge branch 'master' into pluginlist 2016-04-09 15:01:39 -04:00
Torkel Ödegaard
370589d6c0 fix(org switch): fixed issue with switching orgs, fixes #4614 2016-04-09 13:27:06 -04:00
Torkel Ödegaard
d70ef90bdd feat(): plugin list panel 2016-04-08 16:42:33 -04:00
Torkel Ödegaard
43ebc172cb fix(profile): fixed change password link and page, fixes #4542 2016-04-04 13:52:41 -04:00
Torkel Ödegaard
ab1048b7ee feat(preferences): theme and home dashbord settings now work work on profile and org settings page 2016-04-02 13:54:06 -07:00
Torkel Ödegaard
38a10f8be4 progress 2016-04-01 17:34:30 -07:00
Torkel Ödegaard
6ed9164c9d Merge branch 'master' of github.com:grafana/grafana into preferences 2016-03-30 13:35:17 -07:00
Torkel Ödegaard
14326b626e ux(): checkbox now works in dark and white theme 2016-03-28 13:10:42 +02:00
Torkel Ödegaard
c711fb67c8 Merge branch 'master' into websocket 2016-03-22 10:31:57 +01:00
Torkel Ödegaard
5e431149cd feat(preferences): removed unused api prefernce methods, these need to be abstracted more from an http api perpsective, they are too low level for the http api, #4399 2016-03-20 11:54:24 +01:00
Torkel Ödegaard
9e98c86ae1 Merge branch 'master' into preferences 2016-03-20 11:27:49 +01:00
utkarshcmu
9d4fa87914 Viewer not able to delete snapshot 2016-03-18 01:13:34 -07:00
utkarshcmu
cb42cfc6af Removed unwanted api, moved logic into backend 2016-03-17 02:29:34 -07:00
utkarshcmu
4fbe954a79 Home dashboard per user per org works 2016-03-17 01:38:18 -07:00
utkarshcmu
66621d762e Added getDashboardSlugById api 2016-03-17 01:01:58 -07:00
utkarshcmu
9dd6aefcec Minor corrections 2016-03-16 23:35:06 -07:00
utkarshcmu
749fd618a9 Saving home dashboard id in table 2016-03-16 23:22:27 -07:00
Torkel Ödegaard
e06756bcab Merge branch 'preferences' of github.com:grafana/grafana into preferences 2016-03-15 22:15:27 +01:00
Torkel Ödegaard
9c222a445f Merge branch 'master' into preferences 2016-03-15 22:14:35 +01:00
Torkel Ödegaard
3d5251d9a5 feat(websocket): more work websocket ds, # 4355 2016-03-14 17:32:48 +01:00
Torkel Ödegaard
195be2742c feat(live): wip work 2016-03-14 16:18:07 +01:00
Torkel Ödegaard
fbd94fc6ce feat(websockets): inital work on websockets, #4355 2016-03-14 11:59:51 +01:00
utkarshcmu
e371e03696 Able to save preference version, created, updated fields 2016-03-14 03:12:52 -07:00
Torkel Ödegaard
5b6754ce6c Merge branch 'master' into websocket 2016-03-14 10:33:11 +01:00
Torkel Ödegaard
581ffb862c feat(plugins): polish to plugin page, better handling for reading readme file contents 2016-03-13 19:21:44 +01:00
Torkel Ödegaard
c5a817194a more work on dashboard importing and templating 2016-03-11 17:31:57 +01:00
utkarshcmu
43b474143c Preferences model updated 2016-03-11 06:30:05 -08:00
Torkel Ödegaard
ece8a925a6 Merge branch 'master' of github.com:grafana/grafana
Conflicts:
	examples/nginx-app/package.json
	examples/nginx-app/plugin.json
2016-03-11 12:39:10 +01:00
Torkel Ödegaard
2de439bd1e feat(plugins): progress on dashboard installs , #4298 2016-03-11 09:57:20 +01:00
utkarshcmu
4fbff99186 Implemented GetDataSourceIdByName API 2016-03-10 01:31:10 -08:00
utkarshcmu
8afd56575c Moved api in correct group 2016-03-10 00:48:38 -08:00
Torkel Ödegaard
dfaa6d8eb9 feat(plugins): a lot of work on #4298 2016-03-08 18:17:47 +01:00
utkarshcmu
1a39d93b4e Implemented GetDataSourceByName API 2016-03-08 01:54:10 -08:00
utkarshcmu
8f42bec270 Implemented GetUserPreferences API 2016-03-06 11:42:15 -08:00
utkarshcmu
660d3fa1e9 Implemented savePreferences API 2016-03-06 03:47:39 -08:00
utkarshcmu
cf926134ef Added savePreferencesAPI 2016-03-05 13:15:49 -08:00
Torkel Ödegaard
fc877ae0f4 poc(websockets): websocket poc 2016-03-03 23:05:08 +01:00
Anthony Woods
35f7a71f9a fix app->plugin renamin in more places 2016-02-29 19:54:36 +08:00
Torkel Ödegaard
8db7cf49a6 feat(plugins): began refactoring AppSettings -> PluginSettings, and have the plugins list view and plugin edit view be common for all plugins 2016-02-25 14:55:31 +01:00
Torkel Ödegaard
08f7ccff38 feat(avatar): added server side proxy and cache of gravatar requests 2016-02-21 00:06:28 +01:00
Torkel Ödegaard
fcc960e9a2 Merge pull request #3792 from utkarshcmu/snapshot-view
UI Review: Snapshot view
2016-02-05 08:49:23 +01:00
Carl Bergquist
251bf7a2b4 Merge pull request #3840 from utkarshcmu/stats
Grafana stats view as mentioned in #3812
2016-01-27 19:41:10 +01:00
utkarshcmu
da67afa51e Fixed api bugs, stats endpoint working 2016-01-24 21:18:17 -08:00
utkarshcmu
c7fae5386d Added backend API for stats 2016-01-24 11:01:33 -08:00
Anthony Woods
f94599cd29 merge apiPlugins with appPlugins 2016-01-22 01:15:04 +08:00
utkarshcmu
ca55d1f315 Minor bug fixes 2016-01-19 05:05:24 -08:00
utkarshcmu
bcb44b7b31 UI and backend connectivity implemented 2016-01-19 05:02:22 -08:00
utkarshcmu
1ab1154010 Optimized backend queries 2016-01-19 04:09:57 -08:00
utkarshcmu
8f067a5ed2 Added backend functionality for searching snapshots 2016-01-19 01:37:36 -08:00
Torkel Ödegaard
66eebd1ac3 refactor(playlist): refactor of playlist feature, and PR #3776 2016-01-18 16:01:14 +01:00
Torkel Ödegaard
6da3af5e89 Merge branch 'new_macaron' 2016-01-13 15:48:49 +01:00
Torkel Ödegaard
bdb67d4909 fix(build): fixed dependency and build issue 2016-01-13 15:38:54 +01:00
bergquist
4fe72ebf69 feat(macaron): upgrades macaron version 2016-01-13 15:11:23 +01:00
Shaofeng Chen
dc427d5a2c add get org by name api 2016-01-12 13:50:56 -08:00
Torkel Ödegaard
e5b3f27a30 Merge branch 'apps' 2016-01-12 15:41:15 +01:00
bergquist
1ec97e5199 feat(playlist): shortens urls 2016-01-12 14:36:04 +01:00
bergquist
07fdf6491c fix(playlist): new url for viewing playlist 2016-01-12 08:17:44 +01:00
bergquist
8a38991270 feat(playlist): changes to relation table
Also introduces an abstraction between playlist and dashboard.
This will make it possible to att search, and tag filtering to
playlists without any major refactoring
2016-01-12 08:17:44 +01:00
Torkel Ödegaard
c1e94e61d0 feat(apps): lots of more work on apps, changed app_plugin to app_settings in order to to confuse the app plugin model (definition) and app org settings 2016-01-10 21:37:11 +01:00
bergquist
22c001c8a6 fix(playlist): implement api according to new standard 2016-01-08 14:21:30 +01:00
utkarshcmu
bcaaedf2ff Resurrected nikita-graf's work and added playlistType for future use 2015-12-22 02:07:15 -08:00
woodsaj
0903d5541b Merge branch 'master' of github.com:grafana/grafana into externalPlugin
Conflicts:
	pkg/api/api.go
	pkg/api/api_plugin.go
	pkg/api/datasources.go
	pkg/api/frontendsettings.go
	pkg/api/index.go
	pkg/plugins/models.go
	pkg/plugins/plugins.go
2015-12-22 00:23:24 +08:00
woodsaj
48cf56b69a more renaming. also moved apps and datasource menus 2015-12-18 13:46:40 +08:00