diff --git a/app/cloud/server/functions/getWorkspaceLicense.js b/app/cloud/server/functions/getWorkspaceLicense.js index d769895ecfa3..5fbd1ff6fdf5 100644 --- a/app/cloud/server/functions/getWorkspaceLicense.js +++ b/app/cloud/server/functions/getWorkspaceLicense.js @@ -3,6 +3,7 @@ import { HTTP } from 'meteor/http'; import { getWorkspaceAccessToken } from './getWorkspaceAccessToken'; import { settings } from '../../../settings'; import { Settings } from '../../../models'; +import { callbacks } from '../../../callbacks'; export function getWorkspaceLicense() { @@ -39,5 +40,7 @@ export function getWorkspaceLicense() { Settings.updateValueById('Cloud_Workspace_License', remoteLicense.license); + callbacks.run('workspaceLicenseChanged', remoteLicense.license); + return { updated: true, license: remoteLicense.license }; } diff --git a/app/cloud/server/index.js b/app/cloud/server/index.js index 3045794d7f5b..81423b62bbdb 100644 --- a/app/cloud/server/index.js +++ b/app/cloud/server/index.js @@ -1,15 +1,33 @@ +import { Meteor } from 'meteor/meteor'; +import { SyncedCron } from 'meteor/littledata:synced-cron'; + import './methods'; import { getWorkspaceAccessToken } from './functions/getWorkspaceAccessToken'; import { getWorkspaceLicense } from './functions/getWorkspaceLicense'; import { getUserCloudAccessToken } from './functions/getUserCloudAccessToken'; import { getWorkspaceKey } from './functions/getWorkspaceKey'; +import { syncWorkspace } from './functions/syncWorkspace'; import { Permissions } from '../../models'; if (Permissions) { Permissions.createOrUpdate('manage-cloud', ['admin']); } -// Ensure the client/workspace access token is valid -getWorkspaceAccessToken(); +const licenseCronName = 'Cloud Workspace Sync'; + +Meteor.startup(function() { + // run token/license sync if registered + syncWorkspace(); + + SyncedCron.remove(licenseCronName); + SyncedCron.add({ + name: licenseCronName, + schedule(parser) { + // Every 12 hours + return parser.cron('0 */12 * * *'); + }, + job: syncWorkspace, + }); +}); export { getWorkspaceAccessToken, getWorkspaceLicense, getWorkspaceKey, getUserCloudAccessToken };