diff options
author | George Moschovitis <george.moschovitis@gmail.com> | 2019-01-28 12:27:42 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-01-28 12:27:42 +0200 |
commit | b6ce8175451c70db785f36f31b1d26c23f9f6979 (patch) | |
tree | 8e789a92062d1411a1780be52db88fd47cd8c89e /web/gui/dashboard.js | |
parent | afe8af3372eaa6862207ad3b769b5f5c7355e21c (diff) |
Cloud Sign-In (#5095)
* Manually merged changes from old hub-support branch, tracking #131
Call claim url #4771
Claim ui improvements #4771
Cleanup
Implement Sign Out
Introduced sign-in modal #3990
Added sign-in button
More work on the iframe trick
More work
More work on the logic, removed old obsolete stuff
Close modal
Implement account menu
Minor rename
Renamed my-netdata to My Agents
Show migrate button
Collect known agents
Work on migrateRegistryDidClick
Minor
Actually show agents from netdata cloud in the menu
Some cleanup
Keep all the alternate_urls for each agent
Fix for tooltips over SignIn/AccountMenu
* Actually use NETDATA.registry.cloudBaseURL
Tricky!
* Hide switch identity when signed-in #153
* Manually merged changes from old hub-support branch, tracking #131
Call claim url #4771
Claim ui improvements #4771
Cleanup
Implement Sign Out
Introduced sign-in modal #3990
Added sign-in button
More work on the iframe trick
More work
More work on the logic, removed old obsolete stuff
Close modal
Implement account menu
Minor rename
Renamed my-netdata to My Agents
Show migrate button
Collect known agents
Work on migrateRegistryDidClick
Minor
Actually show agents from netdata cloud in the menu
Some cleanup
Keep all the alternate_urls for each agent
Fix for tooltips over SignIn/AccountMenu
* Actually use NETDATA.registry.cloudBaseURL
Tricky!
* Hide switch identity when signed-in #153
* Cleanup
* Refresh menu on sign-in
* Disable cloud functionality if cloud base url is not set.
This wll allow the merging of the branch into master, so we can avoid nasty rebases.
* Updated to use the latest API endpoints
* Fixed a couple of LGTM warnings
* Improved migration algorithm, some cleanup.
* Update My-Netdata menu on sign-out
* Minor
* Replaced modal with window
* Update the My-Agents menu after migration, cleanup
* Make the agent work after switching cloudBaseURL, cleanup
* Introduced event tracing for analytics
* Minor
* Removed GA
* Fixed error reported by LGTM
* Only send the diff when syncing agents to ameliorate the load on the backend, cleanup
* Reverted My-Netdata name, added some logging
* Add Netdata Cloud menu item
* Minor
* Use the merge: false option and a fix
* Added loading message in my-netdata menu
* Show error if we cannot connect to netdata.cloud
* Minor
* Implemented deleteCloudKnownAgentURL api call, use it in my-netdata menu.
* Removed menu entry
* Disable my-netdata menu if user is not signed-in and using the global registry
* Stop accessing the registry if it's not used.
* Mask the agent url if the registry is in 'disabled' mode
* Filter masked urls
* Improved filtering of masked urls
* Try to eagerly initialize the account ui to improve perceived performance
* Minor
* Don't search for other people's urls in cloud-enabled mode.
* Added basic my-netdata filtering
* Filter streamed host, aesthetic fixes
* Minor
* Some improvements of the filter ui
* Removed What is this
* Added placeholder to input, other fixes #240
* Show message if no databases match filter criteria
* Fixed bug where agent lists where not merged
* Minor
* Hide modal if it redirects to self.
* autocomplete off for filter input
* Enable delete for custom registries, don't show error if delete fails
* Filter agents without urls
* Fix LGTM warning
* Minor
* Concatenate at client side, used the faster merge: false path
* Added a clear button to the filter for extra usability
* Minor
* Minor
* Improvements for small screens (more needed)
* Combined my-netdata menu and hostname
* Re-enabled registry masking
* Show agent-filter only when signed-in
* Improved syncAgents
* Don't mask if using custom registry
* Reject agents with empty urls
* Filter valid agents
* Fixed a couple of bugs
* Applied Chris' fixes
* Fix in registry.c
* Cleanup
* Only sync once
* Implemented forceSync
* Added what is this
* sso, wip
* Working SSO sign-in/sign-out, cleanup
* Added Chris' patch
* Added a modal that explains what synchronize is doing
* Use sso-agent
* Use origin as query param in sign-in
* iframe -> origin
* Pass machine_guid to sso
* Make sure that the current netdata agent is synchronized hub#262
* Normalize originURL
* Reenable tryFastInitCloud()
* Updated to the latest endpoints
* Support synchronizing to multiple cloud accounts
* Set default cloud base url to netdata.cloud
* Fix filter issues with Firefox
* Fix for double tooltip on sign-in
* Show known servers in console for debugging purposes
* Don't block on errors to delete from registry when signed in
* Disable tryFastInitCloud
* Improved styling for filter input
* Improved styling in my-netdata menu
* Display the registry url in the sync-registry modal
* agents -> nodes in texts
* Support for sso-precheck
* Do not implicitly synchronize custom registries.
* Improvement to syncAgents (more coming)
* More fixes
* Don't sign in users with private registries if they don't consent on the sync
* Set netdataRegistryAfterMs = 0
* Don't pass url to sso-agent
* Added Chris' patch to alarm-notify
* Refactored syncAgent/mergeAgents, make sure current Agent is synced on sign-in.
* Fix for LGTM warning
* Minor
* Fix for a XSS warning
* Extra check for dataLayer
Diffstat (limited to 'web/gui/dashboard.js')
-rw-r--r-- | web/gui/dashboard.js | 49 |
1 files changed, 39 insertions, 10 deletions
diff --git a/web/gui/dashboard.js b/web/gui/dashboard.js index d066da2f52..71d12e590b 100644 --- a/web/gui/dashboard.js +++ b/web/gui/dashboard.js @@ -1246,7 +1246,7 @@ if (typeof netdataShowAlarms === 'undefined') { } if (typeof netdataRegistryAfterMs !== 'number' || netdataRegistryAfterMs < 0) { - netdataRegistryAfterMs = 1500; + netdataRegistryAfterMs = 0; // 1500; } if (typeof netdataRegistry === 'undefined') { @@ -9677,6 +9677,7 @@ NETDATA.alarms = { NETDATA.registry = { server: null, // the netdata registry server + isCloudEnabled: false,// is netdata.cloud functionality enabled? cloudBaseURL: null, // the netdata cloud base url person_guid: null, // the unique ID of this browser / user machine_guid: null, // the unique ID the netdata server that served dashboard.js @@ -9685,8 +9686,17 @@ NETDATA.registry = { machines_array: null, // the user's other URLs in an array person_urls: null, + MASKED_DATA: "***", + + isUsingGlobalRegistry: function() { + return NETDATA.registry.server == "https://registry.my-netdata.io"; + }, + + isRegistryEnabled: function() { + return !(NETDATA.registry.isUsingGlobalRegistry() || isSignedIn()) + }, + parsePersonUrls: function (person_urls) { - // console.log(person_urls); NETDATA.registry.person_urls = person_urls; if (person_urls) { @@ -9739,14 +9749,21 @@ NETDATA.registry = { NETDATA.registry.hello(NETDATA.serverDefault, function (data) { if (data) { NETDATA.registry.server = data.registry; - NETDATA.registry.cloudBaseURL = data.cloud_base_url; + if (data.cloud_base_url != "") { + NETDATA.registry.isCloudEnabled = true; + NETDATA.registry.cloudBaseURL = data.cloud_base_url; + } else { + NETDATA.registry.isCloudEnabled = false; + NETDATA.registry.cloudBaseURL = ""; + } NETDATA.registry.machine_guid = data.machine_guid; NETDATA.registry.hostname = data.hostname; - if (data.anonymous_statistics) dataLayer.push({"anonymous_statistics" : "true", "machine_guid" : data.machine_guid}); + if (dataLayer) { + if (data.anonymous_statistics) dataLayer.push({"anonymous_statistics" : "true", "machine_guid" : data.machine_guid}); + } NETDATA.registry.access(2, function (person_urls) { NETDATA.registry.parsePersonUrls(person_urls); - - }); + }); } }); }, @@ -9789,13 +9806,25 @@ NETDATA.registry = { }, access: function (max_redirects, callback) { + let name = NETDATA.registry.MASKED_DATA; + let url = NETDATA.registry.MASKED_DATA; + + if (!NETDATA.registry.isUsingGlobalRegistry()) { + // If the user is using a private registry keep sending identifiable + // data. + name = NETDATA.registry.hostname; + url = NETDATA.serverDefault; + } + + console.log("ACCESS", name, url); + // send ACCESS to a netdata registry: // 1. it lets it know we are accessing a netdata server (its machine GUID and its URL) // 2. it responds with a list of netdata servers we know // the registry identifies us using a cookie it sets the first time we access it // the registry may respond with a redirect URL to send us to another registry $.ajax({ - url: NETDATA.registry.server + '/api/v1/registry?action=access&machine=' + NETDATA.registry.machine_guid + '&name=' + encodeURIComponent(NETDATA.registry.hostname) + '&url=' + encodeURIComponent(NETDATA.serverDefault), // + '&visible_url=' + encodeURIComponent(document.location), + url: NETDATA.registry.server + '/api/v1/registry?action=access&machine=' + NETDATA.registry.machine_guid + '&name=' + encodeURIComponent(name) + '&url=' + encodeURIComponent(url), // + '&visible_url=' + encodeURIComponent(document.location), async: true, cache: false, headers: { @@ -9827,14 +9856,14 @@ NETDATA.registry = { return callback(null); } } - } - else { + } else { if (typeof data.person_guid === 'string') { NETDATA.registry.person_guid = data.person_guid; } if (typeof callback === 'function') { - return callback(data.urls); + const urls = data.urls.filter((u) => u[1] !== NETDATA.registry.MASKED_DATA); + return callback(urls); } } }) |