{"version":3,"sources":["webpack:///./src/store/modules/user.js","webpack:///./src/store/modules/notification.js","webpack:///./src/store/modules/namespace.js","webpack:///./src/store/modules/project.js","webpack:///./src/store/modules/device.js","webpack:///./src/store/modules/deviceMonitor.js","webpack:///./src/store/modules/application.js","webpack:///./src/store/modules/secret.js","webpack:///./src/store/modules/iam.js","webpack:///./src/store/modules/role.js","webpack:///./src/store/modules/membership.js","webpack:///./src/store/modules/auth.js","webpack:///./src/store/modules/admin.js","webpack:///./src/store/modules/sse.js","webpack:///./src/store/modules/license.js","webpack:///./src/store/modules/billing.js","webpack:///./src/store/modules/swagger.js","webpack:///./src/store/index.js"],"names":["user","state","drawer","isActive","mutations","payload","SET_USER_LOADING","loading","SET_USER_ERROR","error","SET_USER","actions","GetUser","context","commit","axios","get","then","response","data","catch","message","notification","id","SET_NOTIFICATION","Notify","namespace","namespaces","selectedNamespaceId","createdNamespace","getters","getNamespaceByID","namespaceId","ns","find","SET_NAMESPACE_LOADING","SET_NAMESPACE_ERROR","SET_NAMESPACES","SET_CREATED_NAMESPACE","createdApplication","SET_SELECTED_NAMESPACE","SelectNamespace","Vue","ls","set","LoadSelectedNamespace","defaultNamespace","name","length","ListNamespaces","query","project","status","CreateNamespace","post","projectId","body","DeleteNamespace","delete","UpdateNamespace","put","project_id","memberships","selectedProjectId","createdProject","createError","getFirstProject","getSelectedProject","found","membership","SET_PROJECT_LOADING","SET_PROJECT_ERROR","SET_PROJECT_CREATE_ERROR","SET_PROJECT_MEMBERSHIPS","SET_PROJECT","SET_SELECTED_PROJECT","SET_CREATED_PROJECT","SelectProject","LoadSelectedProject","ClearSelectedProject","remove","GetProjectMemberships","GetProject","DeleteProject","CreateProject","ClearCreateProjectError","UpdateProject","device","versions","deviceMetrics","devices","devicesMetrics","devicesPagination","pageSize","totalItems","nextPageToken","previousPageToken","currentPageToken","registrationToken","universalRegistrationToken","registrationTokens","createdDeviceRegistrationToken","SET_DEVICE_LOADING","SET_DEVICE_ERROR","SET_DEVICE_VERSIONS","SET_DEVICES","SET_DEVICES_PAGINATION_PAGE_SIZE","SET_DEVICES_PAGINATION_CURRENT_PAGE_TOKEN","SET_DEVICES_PAGINATION","headers","parseInt","SET_DEVICES_METRICS","key","results","result","memPercent","memTotal","cpuPercent","gpuMemPercent","gpuMemTotal","gpuUtilization","metrics","latestMetric","idx","latest","Date","timestamp","valueOf","current","memUsedPercentAvg","memTotalAvg","toFixed","cpuTotalPercentageAvg","SET_DEVICE","SET_DEVICE_METRICS","Math","round","gpuMemUtilizationAvg","gpuMemTotalAvg","gpuUtilizationAvg","RESET_DEVICE_METRICS","SET_DEVICE_REGISTRATION_TOKENS","SET_DEVICE_REGISTRATION_TOKEN","SET_DEVICE_QUICK_REGISTRATION_TOKEN","quickRegistrationToken","value","SET_CREATED_DEVICE_REGISTRATION_TOKEN","SetDevicesPageSize","LoadDevicesPageSize","GetDeviceVersions","q","GetDevices","background","url","pageToken","ResetDevicesList","GetDevicesMetrics","ResetDeviceMetrics","GetDevice","deviceId","GetDeviceMetrics","DeleteDevice","UpdateDevice","patch","RebootDevice","WipeDevice","TransferDevice","request","projectID","SetDeviceLabel","values","DeleteDeviceLabel","SetDeviceEnvironmentVariable","UpdateDeviceTunnels","DeleteDeviceEnvironmentVariable","GetDeviceRegistrationToken","ListDeviceRegistrationTokens","CreateDeviceRegistrationToken","DeleteDeviceRegistrationToken","UpdateDeviceRegistrationToken","SetDeviceRegistrationTokenLabel","label","DeleteDeviceRegistrationTokenLabel","GetDeviceRegistrationQuickToken","deviceMonitor","deviceMonitors","deviceMonitorIncidents","devicesMonitorHeartbeats","createdDeviceMonitor","getDeviceMonitorHeartbeats","heartbeats","Heartbeats","getDeviceMonitorIncidents","incidents","SET_DEVICE_MONITOR_LOADING","SET_DEVICE_MONITOR_ERROR","SET_DEVICE_MONITORS","SET_DEVICE_MONITOR_ALLOCATIONS","deviceMonitorAllocations","SET_DEVICE_MONITOR_INCIDENTS","deviceMonitorId","SET_DEVICE_MONITOR","SET_DEVICE_MONITOR_HINTS","deviceMonitorHints","SET_CREATED_DEVICE_MONITOR","SET_DEVICE_MONITOR_HEARTBEATS","ListDeviceMonitors","ListDeviceIncidents","limit","ListDeviceHeartbeats","since","GetDeviceMonitor","CreateDeviceMonitor","DeleteDeviceMonitor","UpdateDeviceMonitor","application","applications","applicationAllocations","applicationIncidents","applicationHints","deployTemplate","templates","template","templatesLoading","SET_APPLICATION_LOADING","SET_APPLICATION_ERROR","SET_APPLICATIONS","SET_APPLICATION_ALLOCATIONS","SET_APPLICATION_INCIDENTS","SET_APPLICATION","SET_APPLICATION_HINTS","SET_CREATED_APPLICATION","SET_DEPLOY_TO_SYNPSE_APPLICATION","SET_APPLICATION_TEMPLATES","SET_APPLICATION_TEMPLATE","SET_APPLICATION_TEMPLATES_LOADING","ListApplicationTemplates","GetApplicationTemplate","appUrl","ListApplications","ListApplicationAllocations","applicationId","ListApplicationIncidents","GetApplication","GetApplicationHints","CreateApplication","app","DeleteApplication","UpdateApplication","GetApplicationDeploymentTemplate","fileUrl","RestartApplication","secrets","secret","createdSecret","SET_SECRET_LOADING","SET_SECRET_ERROR","SET_SECRETS","SET_SECRET","SET_CREATED_SECRET","ListSecrets","GetSecret","CreateSecret","DeleteSecret","UpdateSecret","iam","serviceAccounts","userAccessKeys","userSSHKeys","serviceAccountAccessKeys","createdUserAccessKey","createdUserSSHKey","createdServiceAccount","createdServiceAccountAccessKey","SET_IAM_LOADING","SET_IAM_ERROR","SET_USER_ACCESS_KEYS","SET_CREATED_USER_ACCESS_KEY","SET_SERVICE_ACCOUNTS","SET_CREATED_SERVICE_ACCOUNT","serviceAccount","SET_CREATED_SERVICE_ACCOUNT_ACCESS_KEY","accessKey","SET_SERVICE_ACCOUNT_ACCESS_KEYS","accessKeys","SET_USER_SSH_KEYS","SET_CREATED_USER_SSH_KEY","ListUserAccessKeys","CleanupCreatedUserAccessKey","CreateUserAccessKey","DeleteUserAccessKey","CreateServiceAccount","ListServiceAccounts","DeleteServiceAccount","serviceAccountId","CleanupCreatedServiceAccount","CreateServiceAccountAccessKey","serviceAccountAccessKey","CleanupCreatedServiceAccountAccessKey","ListServiceAccountsAccessKeys","CleanupListServiceAccountsAccessKeys","DeleteServiceAccountsAccessKey","accessKeyId","ListUserSSHKeys","CleanupCreatedUserSSHKey","CreateUserSSHKey","DeleteUserSSHKey","role","roles","SET_ROLES_LOADING","SET_ROLES_ERROR","SET_ROLES","ListRoles","projectMemberships","createdMembership","SET_MEMBERSHIPS_LOADING","SET_MEMBERSHIPS_ERROR","SET_CREATED_MEMBERSHIP","SET_MEMBERSHIPS","ListMembershipsByProject","CreateProjectMembership","DeleteProjectMembership","userId","namespaced","fetch","auth","refresh","login","ctx","Promise","resolve","reject","remember","staySignedIn","res","JSON","stringify","first_name","router","push","type","register","autoLogin","dispatch","logout","impersonating","admin","registeredUsers","whitelistedUsers","createdWhitelistedUser","SET_ADMIN_LOADING","SET_ADMIN_ERROR","SET_REGISTERED_USERS","SET_WHITELISTED_USERS","SET_CREATED_WHITELISTED_USER","whitelistedUser","ListWhitelistedUsers","DeleteWhitelistedUser","CreateWhitelistedUser","ListRegisteredUsers","DeleteUser","deletingUser","UpdateProjectQuota","quota","sse","index","streamName","conn","SET_SSE_STREAM","streamInfo","SET_SSE_CONN","close","CANCEL_SSE_CONN","SubscribeToSSE","subscriptionIndex","stream","throttledCallback","throttle","callback","SSE","format","subscribe","UnsubscribeFromSSE","wait","call","setTimeout","license","SET_LICENSE_LOADING","SET_LICENSE_ERROR","SET_LICENSE","GetLicense","billing","billingPlans","billingAccount","billingUsage","getBillingPlan","billingPlanId","billingPlan","SET_BILLING_LOADING","SET_BILLING_ERROR","SET_BILLING_PLANS","SET_BILLING_ACCOUNT","SET_BILLING_ACCOUNT_USAGE","GetBillingAccount","GetBillingUsage","SetupCheckoutSession","window","location","replace","redirectUrl","SubscribeToPlan","planId","redirectRequired","RemovePaymentMethod","ListBillingPlans","UnlinkProjectFromBillingAccount","swagger","spec","getSpec","SET_SWAGGER_SPEC","GetSwaggerSpec","path","use","Vuex","debug","process","Store","modules","jwt","localStorage","getItem","getApplicationsForNamespace","strict"],"mappings":"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","file":"js/chunk-common.f3f01d69.js","sourcesContent":["import axios from 'axios'\n\nconst user = {\n state: () => ({\n user: null,\n drawer: {\n isActive: true,\n }\n }),\n\n mutations: {\n 'VUETIFY_DRAWER' (state, payload) {\n // Vue.ls.set('SIDEBAR', payload)\n state.drawer.isActive = payload\n },\n SET_USER_LOADING: (state, loading) => {\n state.loading = loading\n },\n SET_USER_ERROR: (state, error) => {\n state.error = error\n },\n SET_USER: (state, user) => {\n state.user = user\n },\n },\n\n actions: {\n GetUser (context) {\n context.commit('SET_USER_LOADING', true)\n return axios.get(`/auth/user`)\n .then((response) => {\n context.commit('SET_USER', response.data)\n context.commit('SET_USER_LOADING', false)\n })\n .catch((error) => context.commit('SET_USER_ERROR', error.response.data.error.message))\n },\n }\n\n}\n\nexport default user\n","const notification = {\n state: () => ({\n notification: {\n id: 0,\n message: ''\n }\n }),\n\n mutations: {\n SET_NOTIFICATION: (state, message) => {\n state.notification = {\n message: message,\n id: state.notification.id++\n }\n }\n },\n\n actions: {\n Notify (context, message) {\n context.commit('SET_NOTIFICATION', message) \n }\n }\n}\n\nexport default notification\n","import Vue from 'vue'\nimport axios from 'axios'\n\nconst namespace = {\n state: () => ({\n loading: false,\n namespaces: [],\n\n selectedNamespaceId: '',\n createdNamespace: {},\n error: null\n }),\n\n getters: {\n getNamespaceByID: (state) => (namespaceId) => {\n\n const ns = state.namespaces.find(ns => {\n if (ns.id == namespaceId) {\n return ns\n }\n })\n if (ns) {\n return ns\n }\n return null\n }\n },\n\n mutations: {\n SET_NAMESPACE_LOADING: (state, loading) => {\n state.loading = loading\n },\n SET_NAMESPACE_ERROR: (state, error) => {\n state.error = error\n },\n SET_NAMESPACES: (state, namespaces) => {\n state.namespaces = namespaces\n },\n SET_CREATED_NAMESPACE: (state, createdApplication) => {\n state.createdApplication = createdApplication\n },\n SET_SELECTED_NAMESPACE: (state, selectedNamespaceId) => {\n state.selectedNamespaceId = selectedNamespaceId\n },\n },\n\n actions: {\n SelectNamespace(context, id) {\n Vue.ls.set('SELECTED_NAMESPACE', id)\n context.commit('SET_SELECTED_NAMESPACE', id)\n },\n LoadSelectedNamespace(context) {\n let id = Vue.ls.get('SELECTED_NAMESPACE');\n if (id) {\n context.commit('SET_SELECTED_NAMESPACE', id)\n return\n }\n // Selecting default is there is one with the name 'default'\n let defaultNamespace = context.state.namespaces.find(namespace => namespace.name === 'default')\n if (defaultNamespace) {\n context.commit('SET_SELECTED_NAMESPACE', defaultNamespace.id)\n return\n }\n // Selecting one if there are any\n if (context.state.namespaces.length > 0) {\n context.commit('SET_SELECTED_NAMESPACE', context.state.namespaces[0].id)\n return\n }\n },\n ListNamespaces (context, query) {\n if (query.project === '') {\n // Missing project ID, can't query\n return\n }\n context.commit('SET_NAMESPACE_LOADING', true)\n return axios.get(`/projects/${query.project}/namespaces`)\n .then((response) => {\n context.commit('SET_NAMESPACES', response.data)\n context.commit('SET_NAMESPACE_LOADING', false)\n })\n .catch((error) => {\n if (error.response.status === 404) {\n // Project doesn't exist anymore,\n Vue.ls.set('SELECTED_NAMESPACE', '')\n return\n }\n context.commit('SET_NAMESPACE_ERROR', error.response.data.error.message)\n })\n },\n CreateNamespace (context, namespace) {\n context.commit('SET_NAMESPACE_ERROR', null)\n return axios.post(`projects/${namespace.projectId}/namespaces`, namespace)\n .then((response) => {\n context.commit('SET_CREATED_NAMESPACE', response.body)\n })\n .catch((error) => context.commit('SET_NAMESPACE_ERROR', error.response.data.error.message))\n },\n DeleteNamespace (context, namespace) {\n context.commit('SET_NAMESPACE_ERROR', null)\n return axios.delete(`projects/${namespace.projectId}/namespaces/${namespace.id}`)\n .then(() => {})\n .catch((error) => context.commit('SET_NAMESPACE_ERROR', error.response.data.error.message))\n },\n UpdateNamespace (context, namespace) {\n context.commit('SET_NAMESPACE_ERROR', null)\n return axios.put(`projects/${namespace.project_id}/namespaces/${namespace.id}`, namespace)\n .then(() => {})\n .catch((error) => {\n context.commit('SET_NAMESPACE_ERROR', error.response.data.error.message)\n })\n }\n }\n}\n\nexport default namespace\n","import Vue from 'vue'\nimport axios from 'axios'\n\nconst project = {\n state: () => ({\n loading: false,\n // memberships where the user has access to\n memberships: [],\n project: null,\n selectedProjectId: null,\n createdProject: {},\n createError: null,\n error: null\n }),\n\n getters: {\n getFirstProject: (state) => () => {\n if (state.memberships.length > 0) {\n return state.memberships[0].projectId\n }\n return ''\n },\n getSelectedProject: (state) => () => {\n if (state.memberships.length > 0) {\n const found = state.memberships.find(membership => {\n if (membership.project.id == state.selectedProjectId) {\n return membership\n }\n })\n if (found) {\n return found.project\n }\n return null\n }\n return null\n }\n },\n\n mutations: {\n SET_PROJECT_LOADING: (state, loading) => {\n state.loading = loading\n },\n SET_PROJECT_ERROR: (state, error) => {\n state.error = error\n },\n SET_PROJECT_CREATE_ERROR: (state, createError) => {\n state.createError = createError\n },\n SET_PROJECT_MEMBERSHIPS: (state, memberships) => {\n state.memberships = memberships\n // TODO: sort?\n // state.projects.sort(function (x, y) {\n // return y.created_at - x.created_at\n // })\n },\n SET_PROJECT: (state, project) => {\n state.project = project\n },\n SET_SELECTED_PROJECT: (state, selectedProjectId) => {\n state.selectedProjectId = selectedProjectId\n },\n SET_CREATED_PROJECT: (state, createdProject) => {\n state.createdProject = createdProject\n }\n },\n\n actions: {\n SelectProject(context, id) {\n Vue.ls.set('SELECTED_PROJECT', id)\n context.commit('SET_SELECTED_PROJECT', id)\n },\n LoadSelectedProject(context) {\n let id = Vue.ls.get('SELECTED_PROJECT');\n context.commit('SET_SELECTED_PROJECT', id) \n },\n ClearSelectedProject(context) {\n Vue.ls.remove('SELECTED_PROJECT');\n context.commit('SET_SELECTED_PROJECT', '')\n },\n GetProjectMemberships (context) {\n context.commit('SET_PROJECT_LOADING', true)\n return axios.get('memberships?full')\n .then((response) => {\n context.commit('SET_PROJECT_MEMBERSHIPS', response.data)\n context.commit('SET_PROJECT_LOADING', false)\n })\n .catch((error) => context.commit('SET_PROJECT_ERROR', error.response.data.error.message))\n },\n GetProject (context, query) {\n context.commit('SET_PROJECT_LOADING', true)\n return axios.get(`projects/${query.projectId}?full`)\n .then((response) => {\n context.commit('SET_PROJECT', response.data)\n context.commit('SET_PROJECT_LOADING', false)\n })\n .catch((error) => context.commit('SET_PROJECT_ERROR', error.response.data.error.message))\n },\n DeleteProject (context, project) {\n context.commit('SET_PROJECT_ERROR', null)\n return axios.delete(`projects/${project.id}`)\n .then(() => {\n context.commit('SET_PROJECT', null)\n context.commit('SET_SELECTED_PROJECT', '')\n context.commit('SET_CREATED_PROJECT', '')\n })\n .catch((error) => context.commit('SET_PROJECT_ERROR', error.response.data.error.message))\n },\n CreateProject (context, project) {\n context.commit('SET_PROJECT_CREATE_ERROR', null)\n return axios.post(`projects`, project)\n .then((response) => {\n context.commit('SET_CREATED_PROJECT', response.data)\n })\n .catch((error) => context.commit('SET_PROJECT_CREATE_ERROR', error.response.data.error.message))\n },\n ClearCreateProjectError (context) {\n context.commit('SET_PROJECT_CREATE_ERROR', null)\n },\n UpdateProject (context, project) {\n context.commit('SET_PROJECT_ERROR', null)\n return axios.put(`projects/${project.id}`, project)\n .then(() => {})\n .catch((error) => {\n context.commit('SET_PROJECT_ERROR', error.response.data.error.message)\n })\n }\n }\n}\n\nexport default project\n","import Vue from 'vue'\nimport axios from \"axios\"\n\nconst device = {\n state: () => ({\n loading: false,\n // Available device versions\n versions: [], // see models.DeviceVersions for structure\n device: {},\n deviceMetrics: [],\n // Registered devices\n devices: [],\n devicesMetrics: {},\n devicesPagination: {\n pageSize: 5,\n totalItems: 0,\n nextPageToken: '',\n previousPageToken: '',\n currentPageToken: ''\n },\n // Device registration tokens\n registrationToken: {}, // details\n universalRegistrationToken: {},\n registrationTokens: [],\n createdDeviceRegistrationToken: {},\n error: null,\n }),\n\n getters: {},\n\n mutations: {\n SET_DEVICE_LOADING: (state, loading) => {\n state.loading = loading\n },\n SET_DEVICE_ERROR: (state, error) => {\n state.error = error\n },\n SET_DEVICE_VERSIONS: (state, versions) => {\n state.versions = versions\n },\n SET_DEVICES: (state, devices) => {\n state.devices = devices\n },\n SET_DEVICES_PAGINATION_PAGE_SIZE: (state, pageSize) => {\n state.devicesPagination.pageSize = pageSize\n // Also resetting the pagination token\n // as it's not valid for certain situations\n state.devicesPagination.nextPageToken = ''\n state.devicesPagination.previousPageToken = ''\n },\n SET_DEVICES_PAGINATION_CURRENT_PAGE_TOKEN: (state, currentPageToken) => {\n state.devicesPagination.currentPageToken = currentPageToken\n },\n SET_DEVICES_PAGINATION: (state, headers) => {\n if ('previous-page-token' in headers) {\n state.devicesPagination.previousPageToken = headers['previous-page-token']\n } else {\n state.devicesPagination.previousPageToken = ''\n }\n\n if ('next-page-token' in headers) {\n state.devicesPagination.nextPageToken = headers['next-page-token']\n } else {\n state.devicesPagination.nextPageToken = ''\n }\n state.devicesPagination.totalItems = parseInt(headers['total-items'])\n },\n // SET_DEVICES_METRICS will set the metrics for the devices list\n SET_DEVICES_METRICS: (state, devicesMetrics) => {\n // set device metrics will calculate and set the metrics for the devices as a unique hash keys values\n for (var key in devicesMetrics.results) {\n let result = {\n device: key,\n memPercent: 0,\n memTotal: 0,\n cpuPercent:0,\n gpuMemPercent: 0,\n gpuMemTotal: 0,\n gpuUtilization: 0,\n }\n\n let metrics = devicesMetrics.results[key]\n\n if(metrics.length == 0){\n continue\n }\n\n latestMetric = metrics[0]\n\n if (metrics.length > 0){\n var latestMetric = metrics[0]\n for (var idx in metrics){\n const latest = new Date(latestMetric.timestamp).valueOf()\n const current = new Date(metrics[idx].timestamp).valueOf()\n if (current > latest){\n latestMetric = metrics[idx]\n }\n }\n // mem\n result.memPercent = latestMetric.memUsedPercentAvg\n result.memTotal = (latestMetric.memTotalAvg / 1024 / 1024 / 1024).toFixed(2)\n\n // cpu\n result.cpuPercent = (latestMetric.cpuTotalPercentageAvg).toFixed(2)\n\n state.devicesMetrics[result.device] = result\n }\n }\n },\n SET_DEVICE: (state, device) => {\n state.device = device\n },\n SET_DEVICE_METRICS: (state, metrics) => {\n let results = []\n for (var idx in metrics){\n var result = {\n timestamp: metrics[idx].timestamp,\n memPercent: 0,\n memTotal: 0,\n cpuPercent:0,\n gpuMemPercent: 0,\n gpuMemTotal: 0,\n gpuUtilization: 0,\n }\n\n // CPU\n result.cpuPercent = Math.round(metrics[idx].cpuTotalPercentageAvg)\n\n // mem\n result.memPercent = metrics[idx].memUsedPercentAvg\n result.memTotal = (metrics[idx].memTotalAvg / 1024 / 1024 / 1024).toFixed(2)\n\n // gpu\n result.gpuMemPercent = metrics[idx].gpuMemUtilizationAvg\n result.gpuMemTotal = metrics[idx].gpuMemTotalAvg\n result.gpuUtilization = metrics[idx].gpuUtilizationAvg\n\n results[idx] = result\n\n }\n state.deviceMetrics = results\n },\n RESET_DEVICE_METRICS: (state) => {\n state.deviceMetrics = []\n },\n SET_DEVICE_REGISTRATION_TOKENS: (state, registrationTokens) => {\n state.registrationTokens = registrationTokens\n },\n SET_DEVICE_REGISTRATION_TOKEN: (state, registrationToken) => {\n state.registrationToken = registrationToken\n },\n SET_DEVICE_QUICK_REGISTRATION_TOKEN: (state, data) => {\n for (var idx in state.registrationTokens){\n // inject quick token into existing data model\n if (state.registrationTokens[idx].id === data.id){\n state.registrationTokens[idx].quickRegistrationToken = data.value\n }\n }\n },\n SET_CREATED_DEVICE_REGISTRATION_TOKEN: (\n state,\n createdDeviceRegistrationToken\n ) => {\n state.createdDeviceRegistrationToken = createdDeviceRegistrationToken\n },\n },\n\n actions: {\n SetDevicesPageSize(context, pageSize) {\n Vue.ls.set('DEVICES_PAGE_SIZE', pageSize)\n context.commit('SET_DEVICES_PAGINATION_PAGE_SIZE', pageSize)\n },\n LoadDevicesPageSize(context) {\n let pageSize = Vue.ls.get('DEVICES_PAGE_SIZE');\n context.commit('SET_DEVICES_PAGINATION_PAGE_SIZE', pageSize)\n },\n // SetDevicesPaginationPreviousPageToken(context, previousPagePath) {\n // context.commit('SET_DEVICES_PAGINATION_PREVIOUS_PAGE_TOKEN', previousPagePath)\n // },\n GetDeviceVersions(context, q) {\n axios.get(`projects/${q.projectId}/device-versions`)\n .then(response => {\n context.commit('SET_DEVICE_VERSIONS', response.data)\n })\n .catch(error => {\n context.commit('SET_DEVICE_ERROR', error)\n })\n },\n GetDevices(context, q) {\n context.commit(\"SET_DEVICE_ERROR\", null)\n // Do not show loading for background refreshes\n if (!q.background) {\n context.commit(\"SET_DEVICE_LOADING\", true)\n }\n let url = `projects/${q.projectId}/devices?pageSize=${q.pageSize}&full`\n if (q.query !== '') {\n url += `&q=${q.query}`\n }\n if (q.pageToken !== '') {\n url = url + `&pageToken=${q.pageToken}`\n }\n return axios\n .get(url)\n .then((response) => {\n context.commit(\"SET_DEVICES_PAGINATION_CURRENT_PAGE_TOKEN\", q.pageToken)\n context.commit(\"SET_DEVICES_PAGINATION\", response.headers)\n context.commit(\"SET_DEVICES\", response.data)\n context.commit(\"SET_DEVICE_LOADING\", false)\n })\n .catch((error) =>\n context.commit(\"SET_DEVICE_ERROR\", error.response.data.error.message)\n )\n },\n ResetDevicesList(context) {\n context.commit(\"SET_DEVICES\", [])\n context.commit(\"SET_DEVICES_PAGINATION_PAGE_SIZE\", 5)\n },\n GetDevicesMetrics(context, q) {\n context.commit(\"SET_DEVICE_ERROR\", null)\n // Do not show loading for background refreshes\n if (!q.background) {\n context.commit(\"SET_DEVICE_LOADING\", true)\n }\n let url = `projects/${q.projectId}/devices-metrics?pageSize=${q.pageSize}&window=last30Minutes`\n if (q.query !== '') {\n url += `&q=${q.query}`\n }\n if (q.pageToken !== '') {\n url = url + `&pageToken=${q.pageToken}`\n }\n return axios\n .get(url)\n .then((response) => {\n context.commit(\"SET_DEVICES_METRICS\", response.data)\n })\n .catch((error) =>\n context.commit(\"SET_DEVICE_ERROR\", error.response.data.error.message)\n )\n },\n ResetDeviceMetrics(context) {\n context.commit(\"RESET_DEVICE_METRICS\")\n },\n GetDevice(context, q) {\n context.commit(\"SET_DEVICE_ERROR\", null)\n context.commit(\"SET_DEVICE_LOADING\", true)\n return axios\n .get(`projects/${q.projectId}/devices/${q.deviceId}?full`)\n .then((response) => {\n context.commit(\"SET_DEVICE\", response.data)\n context.commit(\"SET_DEVICE_LOADING\", false)\n })\n .catch((error) =>\n context.commit(\"SET_DEVICE_ERROR\", error.response.data.error.message)\n )\n },\n GetDeviceMetrics(context, q) {\n context.commit(\"SET_DEVICE_ERROR\", null)\n let url = `projects/${q.projectId}/devices/${q.deviceId}/metrics`\n return axios\n .get(url)\n .then((response) => {\n context.commit(\"SET_DEVICE_METRICS\", response.data)\n })\n .catch((error) =>\n context.commit(\"SET_DEVICE_ERROR\", error.response.data.error.message)\n )\n },\n DeleteDevice(context, device) {\n context.commit(\"SET_DEVICE_ERROR\", null)\n return axios\n .delete(`projects/${device.projectId}/devices/${device.id}`)\n .then(() => {})\n .catch((error) =>\n context.commit(\"SET_DEVICE_ERROR\", error.response.data.error.message)\n )\n },\n UpdateDevice(context, device) {\n context.commit(\"SET_DEVICE_ERROR\", null)\n return axios\n .patch(`projects/${device.projectId}/devices/${device.id}`, device)\n .then(() => {})\n .catch((error) => {\n context.commit(\"SET_DEVICE_ERROR\", error.response.data.error.message)\n })\n },\n RebootDevice(context, device) {\n context.commit(\"SET_DEVICE_ERROR\", null)\n return axios\n .post(\n `projects/${device.projectId}/devices/${device.id}/reboot`,\n device\n )\n .then(() => {})\n .catch((error) => {\n context.commit(\"SET_DEVICE_ERROR\", error.response.data.error.message)\n })\n },\n WipeDevice(context, device) {\n context.commit(\"SET_DEVICE_ERROR\", null)\n return axios\n .post(`projects/${device.projectId}/devices/${device.id}/wipe`, device)\n .then(() => {})\n .catch((error) => {\n context.commit(\"SET_DEVICE_ERROR\", error.response.data.error.message)\n })\n },\n TransferDevice(context, request) {\n context.commit(\"SET_DEVICE_ERROR\", null)\n return axios\n .post(`projects/${request.projectID}/devices/${request.id}/move`, request)\n .then(() => {})\n .catch((error) => {\n context.commit(\"SET_DEVICE_ERROR\", error.response.data.error.message)\n })\n },\n SetDeviceLabel(context, payload) {\n context.commit(\"SET_DEVICE_ERROR\", null)\n return axios\n .put(\n `projects/${payload.projectId}/devices/${payload.deviceId}/labels`,\n payload.values\n )\n .then(() => {})\n .catch((error) => {\n context.commit(\"SET_DEVICE_ERROR\", error.response.data.error.message)\n })\n },\n DeleteDeviceLabel(context, payload) {\n context.commit(\"SET_DEVICE_ERROR\", null)\n return axios\n .delete(\n `projects/${payload.projectId}/devices/${payload.deviceId}/labels/${payload.key}`\n )\n .then(() => {})\n .catch((error) => {\n context.commit(\"SET_DEVICE_ERROR\", error.response.data.error.message)\n })\n },\n SetDeviceEnvironmentVariable(context, payload) {\n context.commit(\"SET_DEVICE_ERROR\", null)\n return axios\n .put(\n `projects/${payload.projectId}/devices/${payload.deviceId}/environmentvariables`,\n payload.value\n )\n .then(() => {})\n .catch((error) => {\n context.commit(\"SET_DEVICE_ERROR\", error.response.data.error.message)\n })\n },\n UpdateDeviceTunnels(context, payload) {\n context.commit(\"SET_DEVICE_ERROR\", null)\n return axios\n .patch(\n `projects/${payload.projectId}/devices/${payload.deviceId}/tunnels`,\n payload\n )\n .then(() => {})\n .catch((error) => {\n context.commit(\"SET_DEVICE_ERROR\", error.response.data.error.message)\n })\n },\n DeleteDeviceEnvironmentVariable(context, payload) {\n context.commit(\"SET_DEVICE_ERROR\", null)\n return axios\n .delete(\n `projects/${payload.projectId}/devices/${payload.deviceId}/environmentvariables/${payload.key}`\n )\n .then(() => {})\n .catch((error) => {\n context.commit(\"SET_DEVICE_ERROR\", error.response.data.error.message)\n })\n },\n // Device registration tokens, used for provisioning\n GetDeviceRegistrationToken(context, q) {\n context.commit(\"SET_DEVICE_LOADING\", true)\n return axios\n .get(`projects/${q.projectId}/device-registration-tokens/${q.id}`)\n .then((response) => {\n context.commit(\"SET_DEVICE_REGISTRATION_TOKEN\", response.data)\n context.commit(\"SET_DEVICE_LOADING\", false)\n })\n .catch((error) =>\n context.commit(\"SET_DEVICE_ERROR\", error.response.data.error.message)\n )\n },\n ListDeviceRegistrationTokens(context, q) {\n context.commit(\"SET_DEVICE_LOADING\", true)\n return axios\n .get(`projects/${q.projectId}/device-registration-tokens?full`)\n .then((response) => {\n context.commit(\"SET_DEVICE_REGISTRATION_TOKENS\", response.data)\n context.commit(\"SET_DEVICE_LOADING\", false)\n })\n .catch((error) =>\n context.commit(\"SET_DEVICE_ERROR\", error.response.data.error.message)\n )\n },\n CreateDeviceRegistrationToken(context, registrationToken) {\n context.commit(\"SET_DEVICE_ERROR\", null)\n return axios\n .post(\n `projects/${registrationToken.projectId}/device-registration-tokens`,\n registrationToken\n )\n .then((response) => {\n context.commit(\"SET_CREATED_DEVICE_REGISTRATION_TOKEN\", response.data)\n })\n .catch((error) => {\n context.commit(\"SET_DEVICE_ERROR\", error.response.data.error.message)\n })\n },\n DeleteDeviceRegistrationToken(context, registrationToken) {\n context.commit(\"SET_DEVICE_ERROR\", null)\n return axios\n .delete(\n `projects/${registrationToken.projectId}/device-registration-tokens/${registrationToken.id}`\n )\n .then(() => {})\n .catch((error) =>\n context.commit(\"SET_DEVICE_ERROR\", error.response.data.error.message)\n )\n },\n UpdateDeviceRegistrationToken(context, registrationToken) {\n context.commit(\"SET_DEVICE_ERROR\", null)\n return axios\n .put(\n `projects/${registrationToken.projectId}/device-registration-tokens/${registrationToken.id}`,\n registrationToken\n )\n .then(() => {})\n .catch((error) => {\n context.commit(\"SET_DEVICE_ERROR\", error.response.data.error.message)\n })\n },\n SetDeviceRegistrationTokenLabel(context, payload) {\n context.commit(\"SET_DEVICE_ERROR\", null)\n return axios\n .put(\n `projects/${payload.projectId}/device-registration-tokens/${payload.id}/labels`,\n payload.label\n )\n .then(() => {})\n .catch((error) => {\n context.commit(\"SET_DEVICE_ERROR\", error.response.data.error.message)\n })\n },\n DeleteDeviceRegistrationTokenLabel(context, payload) {\n context.commit(\"SET_DEVICE_ERROR\", null)\n return axios\n .delete(\n `projects/${payload.projectId}/device-registration-tokens/${payload.id}/labels/${payload.key}`\n )\n .then(() => {})\n .catch((error) => {\n context.commit(\"SET_DEVICE_ERROR\", error.response.data.error.message)\n })\n },\n GetDeviceRegistrationQuickToken(context, q) {\n context.commit(\"SET_DEVICE_LOADING\", true)\n return axios\n .get(`projects/${q.projectId}/device-registration-tokens/${q.id}/quick-token`)\n .then((response) => {\n let data = {\n value: response.data.value,\n id: q.id\n }\n context.commit(\"SET_DEVICE_QUICK_REGISTRATION_TOKEN\", data)\n context.commit(\"SET_DEVICE_LOADING\", false)\n })\n .catch((error) =>\n context.commit(\"SET_DEVICE_ERROR\", error.response.data.error.message)\n )\n },\n },\n}\n\nexport default device\n","import axios from \"axios\"\n\nconst deviceMonitor = {\n state: () => ({\n loading: false,\n deviceMonitors: [],\n deviceMonitorIncidents: {},\n deviceMonitor: null,\n devicesMonitorHeartbeats: {},\n createdDeviceMonitor: {},\n error: null,\n }),\n\n getters: {\n getDeviceMonitorHeartbeats: (state) => (deviceId) => {\n if (deviceId in state.devicesMonitorHeartbeats) {\n // already loaded\n const heartbeats = state.devicesMonitorHeartbeats[deviceId]\n if (heartbeats) {\n return heartbeats.Heartbeats\n }\n }\n \n return []\n },\n getDeviceMonitorIncidents: (state) => (deviceId) => {\n if (deviceId in state.deviceMonitorIncidents) {\n // already loaded\n const incidents = state.deviceMonitorIncidents[deviceId]\n if (incidents) {\n return incidents\n }\n }\n \n return []\n }\n },\n\n mutations: {\n SET_DEVICE_MONITOR_LOADING: (state, loading) => {\n state.loading = loading\n },\n SET_DEVICE_MONITOR_ERROR: (state, error) => {\n state.error = error\n },\n SET_DEVICE_MONITORS: (state, deviceMonitors) => {\n state.deviceMonitors = deviceMonitors\n },\n SET_DEVICE_MONITOR_ALLOCATIONS: (state, deviceMonitorAllocations) => {\n state.deviceMonitorAllocations = deviceMonitorAllocations\n },\n SET_DEVICE_MONITOR_INCIDENTS: (state, payload) => {\n state.deviceMonitorIncidents[payload.deviceMonitorId] = payload.incidents\n },\n SET_DEVICE_MONITOR: (state, deviceMonitor) => {\n state.deviceMonitor = deviceMonitor\n },\n SET_DEVICE_MONITOR_HINTS: (state, deviceMonitorHints) => {\n state.deviceMonitorHints = deviceMonitorHints\n },\n SET_CREATED_DEVICE_MONITOR: (state, createdDeviceMonitor) => {\n state.createdDeviceMonitor = createdDeviceMonitor\n },\n SET_DEVICE_MONITOR_HEARTBEATS: (state, payload) => {\n state.devicesMonitorHeartbeats[payload.deviceMonitorId] = payload.heartbeats\n }\n },\n\n actions: {\n ListDeviceMonitors(context, query) {\n return axios\n .get(`/projects/${query.projectId}/device-monitors`)\n .then((response) => {\n context.commit(\"SET_DEVICE_MONITORS\", response.data)\n context.commit(\"SET_DEVICE_MONITOR_LOADING\", false)\n })\n .catch((error) =>\n context.commit(\n \"SET_DEVICE_MONITOR_ERROR\",\n error.response.data.error.message\n )\n )\n },\n ListDeviceIncidents(context, query) {\n return axios\n .get(\n `/projects/${query.projectId}/device-monitors/${query.deviceMonitorId}/incidents?limit=${query.limit}`\n )\n .then((response) => {\n context.commit(\"SET_DEVICE_MONITOR_INCIDENTS\", {\n deviceMonitorId: query.deviceMonitorId,\n incidents: response.data,\n })\n context.commit(\"SET_DEVICE_MONITOR_LOADING\", false)\n })\n .catch((error) =>\n context.commit(\n \"SET_DEVICE_MONITOR_ERROR\",\n error.response.data.error.message\n )\n )\n },\n ListDeviceHeartbeats(context, query) {\n context.commit(\"SET_DEVICE_MONITOR_LOADING\", true)\n\n if (!query.since) {\n query.since = '1h'\n }\n \n return axios\n .get(\n `/projects/${query.projectId}/device-monitors/${query.deviceMonitorId}/heartbeats?since=${query.since}`\n )\n .then((response) => {\n context.commit(\"SET_DEVICE_MONITOR_HEARTBEATS\", {\n deviceMonitorId: query.deviceMonitorId,\n heartbeats: response.data\n })\n context.commit(\"SET_DEVICE_MONITOR_LOADING\", false)\n })\n .catch((error) =>\n context.commit(\n \"SET_DEVICE_MONITOR_ERROR\",\n error.response.data.error.message\n )\n )\n },\n GetDeviceMonitor(context, query) {\n return axios\n .get(\n `/projects/${query.projectId}/device-monitors/${query.deviceMonitorId}`\n )\n .then((response) => {\n context.commit(\"SET_DEVICE_MONITOR\", response.data)\n context.commit(\"SET_DEVICE_MONITOR_LOADING\", false)\n })\n .catch((error) =>\n context.commit(\n \"SET_DEVICE_MONITOR_ERROR\",\n error.response.data.error.message\n )\n )\n },\n CreateDeviceMonitor(context, deviceMonitor) {\n context.commit(\"SET_DEVICE_MONITOR_ERROR\", null)\n return axios\n .post(\n `/projects/${deviceMonitor.projectId}/device-monitors`,\n deviceMonitor\n )\n .then((response) => {\n context.commit(\"SET_CREATED_DEVICE_MONITOR\", response.data)\n })\n .catch((error) =>\n context.commit(\n \"SET_DEVICE_MONITOR_ERROR\",\n error.response.data.error.message\n )\n )\n },\n DeleteDeviceMonitor(context, deviceMonitor) {\n context.commit(\"SET_DEVICE_MONITOR_ERROR\", null)\n return axios\n .delete(\n `/projects/${deviceMonitor.projectId}/device-monitors/${deviceMonitor.id}`\n )\n .then(() => {})\n .catch((error) =>\n context.commit(\n \"SET_DEVICE_MONITOR_ERROR\",\n error.response.data.error.message\n )\n )\n },\n UpdateDeviceMonitor(context, deviceMonitor) {\n context.commit(\"SET_DEVICE_MONITOR_ERROR\", null)\n return axios\n .patch(\n `/projects/${deviceMonitor.projectId}/device-monitors/${deviceMonitor.id}`,\n deviceMonitor\n )\n .then(() => {})\n .catch((error) => {\n context.commit(\n \"SET_DEVICE_MONITOR_ERROR\",\n error.response.data.error.message\n )\n })\n },\n },\n}\n\nexport default deviceMonitor\n","import axios from 'axios'\n\nconst application = {\n state: () => ({\n loading: false,\n // Applications per namespace\n applications: [],\n applicationAllocations: [],\n applicationIncidents: [],\n application: null,\n applicationHints: [],\n createdApplication: {},\n deployTemplate: ``, // From button\n\n templates: [],\n template: null,\n templatesLoading: false, \n \n error: null\n }),\n\n mutations: {\n SET_APPLICATION_LOADING: (state, loading) => {\n state.loading = loading\n },\n SET_APPLICATION_ERROR: (state, error) => {\n state.error = error\n },\n SET_APPLICATIONS: (state, applications) => {\n state.applications = applications\n },\n SET_APPLICATION_ALLOCATIONS: (state, applicationAllocations) => {\n state.applicationAllocations = applicationAllocations\n },\n SET_APPLICATION_INCIDENTS: (state, applicationIncidents) => {\n state.applicationIncidents = applicationIncidents\n },\n SET_APPLICATION: (state, application) => {\n state.application = application\n },\n SET_APPLICATION_HINTS: (state, applicationHints) => {\n state.applicationHints = applicationHints\n },\n SET_CREATED_APPLICATION: (state, createdApplication) => {\n state.createdApplication = createdApplication\n },\n SET_DEPLOY_TO_SYNPSE_APPLICATION: (state, deployTemplate) => {\n state.deployTemplate = deployTemplate\n },\n SET_APPLICATION_TEMPLATES: (state, templates) => {\n state.templates = templates\n },\n SET_APPLICATION_TEMPLATE: (state, template) => {\n state.template = template\n },\n SET_APPLICATION_TEMPLATES_LOADING: (state, loading) => {\n state.templatesLoading = loading\n },\n },\n\n actions: {\n // Templates\n ListApplicationTemplates (context) {\n context.commit('SET_APPLICATION_TEMPLATES_LOADING', true)\n \n return axios.get(`/templates`)\n .then((response) => {\n context.commit('SET_APPLICATION_TEMPLATES', response.data)\n context.commit('SET_APPLICATION_TEMPLATES_LOADING', false)\n })\n .catch((error) => {\n context.commit('SET_APPLICATION_ERROR', error.response.data.error.message)\n context.commit('SET_APPLICATION_TEMPLATES_LOADING', false)\n })\n },\n GetApplicationTemplate (context, query) {\n context.commit('SET_APPLICATION_TEMPLATES_LOADING', true) \n\n return axios.get(`/templates/${query.id}?deviceId=${query.deviceId}&appUrl=${query.appUrl}`)\n .then((response) => {\n context.commit('SET_APPLICATION_TEMPLATE', response.data)\n context.commit('SET_APPLICATION_TEMPLATES_LOADING', false)\n })\n .catch((error) => {\n context.commit('SET_APPLICATION_ERROR', error.response.data.error.message)\n context.commit('SET_APPLICATION_TEMPLATES_LOADING', false)\n })\n },\n // Applications\n ListApplications (context, query) {\n if (!query.background) {\n context.commit('SET_APPLICATION_LOADING', true)\n }\n return axios.get(`/projects/${query.projectId}/namespaces/${query.namespaceId}/applications`)\n .then((response) => {\n context.commit('SET_APPLICATIONS', response.data)\n context.commit('SET_APPLICATION_LOADING', false)\n })\n .catch((error) => context.commit('SET_APPLICATION_ERROR', error.response.data.error.message))\n },\n ListApplicationAllocations (context, query) {\n if (!query.background) {\n context.commit('SET_APPLICATION_ALLOCATIONS', [])\n context.commit('SET_APPLICATION_LOADING', true)\n }\n return axios.get(`/projects/${query.projectId}/namespaces/${query.namespaceId}/applications/${query.applicationId}/allocations`)\n .then((response) => {\n context.commit('SET_APPLICATION_ALLOCATIONS', response.data)\n context.commit('SET_APPLICATION_LOADING', false)\n })\n .catch((error) => context.commit('SET_APPLICATION_ERROR', error.response.data.error.message))\n }, \n ListApplicationIncidents (context, query) {\n if (!query.background) {\n context.commit('SET_APPLICATION_INCIDENTS', [])\n context.commit('SET_APPLICATION_LOADING', true)\n }\n return axios.get(`/projects/${query.projectId}/namespaces/${query.namespaceId}/applications/${query.applicationId}/incidents?limit=${query.limit}`)\n .then((response) => {\n context.commit('SET_APPLICATION_INCIDENTS', response.data)\n context.commit('SET_APPLICATION_LOADING', false)\n })\n .catch((error) => context.commit('SET_APPLICATION_ERROR', error.response.data.error.message))\n },\n GetApplication (context, query) {\n if (!query.background) {\n context.commit('SET_APPLICATION_LOADING', true)\n } \n return axios.get(`/projects/${query.projectId}/namespaces/${query.namespaceId}/applications/${query.applicationId}?full`)\n .then((response) => {\n context.commit('SET_APPLICATION', response.data)\n context.commit('SET_APPLICATION_LOADING', false)\n })\n .catch((error) => context.commit('SET_APPLICATION_ERROR', error.response.data.error.message))\n },\n GetApplicationHints (context, query) {\n if (!query.background) {\n context.commit('SET_APPLICATION_HINTS', [])\n }\n return axios.get(`/projects/${query.projectId}/namespaces/${query.namespaceId}/applications/${query.applicationId}/hints`)\n .then((response) => {\n context.commit('SET_APPLICATION_HINTS', response.data) \n })\n .catch((error) => context.commit('SET_APPLICATION_ERROR', error.response.data.error.message))\n },\n CreateApplication (context, app) {\n context.commit('SET_APPLICATION_ERROR', null)\n return axios.post(`/projects/${app.projectId}/namespaces/${app.namespaceId}/applications`, app)\n .then((response) => {\n context.commit('SET_CREATED_APPLICATION', response.data)\n })\n .catch((error) => context.commit('SET_APPLICATION_ERROR', error.response.data.error.message))\n },\n DeleteApplication (context, app) {\n context.commit('SET_APPLICATION_ERROR', null)\n return axios.delete(`/projects/${app.projectId}/namespaces/${app.namespaceId}/applications/${app.id}`)\n .then(() => {})\n .catch((error) => context.commit('SET_APPLICATION_ERROR', error.response.data.error.message))\n },\n UpdateApplication (context, app) {\n context.commit('SET_APPLICATION_ERROR', null)\n return axios.patch(`/projects/${app.projectId}/namespaces/${app.namespaceId}/applications/${app.id}`, app)\n .then(() => {})\n .catch((error) => {\n context.commit('SET_APPLICATION_ERROR', error.response.data.error.message)\n })\n },\n GetApplicationDeploymentTemplate (context, query) {\n if (!query.background) {\n context.commit('SET_APPLICATION_LOADING', true)\n } \n return axios.get(`/deploy-template?fileUrl=${query.fileUrl}`)\n .then((response) => {\n context.commit('SET_DEPLOY_TO_SYNPSE_APPLICATION', response.data)\n context.commit('SET_APPLICATION_LOADING', false)\n })\n .catch((error) => context.commit('SET_APPLICATION_ERROR', error.response.data.error.message))\n },\n RestartApplication (context, app) {\n context.commit('SET_APPLICATION_ERROR', null)\n return axios.post(`/projects/${app.projectId}/namespaces/${app.namespaceId}/applications/${app.id}/restart`, app)\n .then(() => {})\n .catch((error) => {\n context.commit('SET_APPLICATION_ERROR', error.response.data.error.message)\n })\n }\n }\n}\n\nexport default application\n","import axios from 'axios'\n\nconst application = {\n state: () => ({\n loading: false,\n // Secrets per namespace\n secrets: [],\n secret: null,\n createdSecret: {},\n error: null\n }),\n\n mutations: {\n SET_SECRET_LOADING: (state, loading) => {\n state.loading = loading\n },\n SET_SECRET_ERROR: (state, error) => {\n state.error = error\n },\n SET_SECRETS: (state, secrets) => {\n state.secrets = secrets\n },\n SET_SECRET: (state, secret) => {\n state.secret = secret\n },\n SET_CREATED_SECRET: (state, createdSecret) => {\n state.createdSecret = createdSecret\n }\n },\n\n actions: {\n ListSecrets (context, query) {\n context.commit('SET_SECRET_LOADING', true)\n return axios.get(`/projects/${query.projectId}/namespaces/${query.namespaceId}/secrets`)\n .then((response) => {\n context.commit('SET_SECRETS', response.data)\n context.commit('SET_SECRET_LOADING', false)\n })\n .catch((error) => context.commit('SET_SECRET_ERROR', error.response.data.error.message))\n },\n GetSecret (context, query) {\n context.commit('SET_SECRET_LOADING', true)\n return axios.get(`/projects/${query.projectId}/namespaces/${query.namespaceId}/secrets/${query.id}`)\n .then((response) => {\n context.commit('SET_SECRET', response.data)\n context.commit('SET_SECRET_LOADING', false)\n })\n .catch((error) => context.commit('SET_SECRET_ERROR', error.response.data.error.message))\n },\n CreateSecret (context, secret) {\n context.commit('SET_SECRET_ERROR', null)\n return axios.post(`/projects/${secret.projectId}/namespaces/${secret.namespaceId}/secrets`, secret)\n .then((response) => {\n context.commit('SET_CREATED_SECRET', response.data)\n })\n .catch((error) => context.commit('SET_SECRET_ERROR', error.response.data.error.message))\n },\n DeleteSecret (context, secret) {\n context.commit('SET_SECRET_ERROR', null)\n return axios.delete(`/projects/${secret.projectId}/namespaces/${secret.namespaceId}/secrets/${secret.id}`)\n .then(() => {})\n .catch((error) => context.commit('SET_SECRET_ERROR', error.response.data.error.message))\n },\n UpdateSecret (context, secret) {\n context.commit('SET_SECRET_ERROR', null)\n return axios.patch(`/projects/${secret.projectId}/namespaces/${secret.namespaceId}/secrets/${secret.id}`, secret)\n .then(() => {})\n .catch((error) => {\n context.commit('SET_SECRET_ERROR', error.response.data.error.message)\n })\n }\n }\n}\n\nexport default application\n","import axios from 'axios'\n\nconst iam = {\n state: () => ({\n loading: false,\n serviceAccounts: [],\n userAccessKeys: [],\n userSSHKeys: [],\n serviceAccountAccessKeys: [], // do not use this for general state. it is short term storage for edit\n createdUserAccessKey: null,\n createdUserSSHKey: null,\n createdServiceAccount: null,\n createdServiceAccountAccessKey: null,\n error: null\n }),\n\n getters: {\n },\n\n mutations: {\n SET_IAM_LOADING: (state, loading) => {\n state.loading = loading\n },\n SET_IAM_ERROR: (state, error) => {\n state.error = error\n },\n SET_USER_ACCESS_KEYS: (state, userAccessKeys) => {\n state.userAccessKeys = userAccessKeys\n },\n SET_CREATED_USER_ACCESS_KEY: (state, createdUserAccessKey) => {\n state.createdUserAccessKey = createdUserAccessKey\n },\n SET_SERVICE_ACCOUNTS: (state, serviceAccounts) => {\n state.serviceAccounts = serviceAccounts\n },\n SET_CREATED_SERVICE_ACCOUNT: (state, serviceAccount) => {\n state.createdServiceAccount = serviceAccount\n },\n SET_CREATED_SERVICE_ACCOUNT_ACCESS_KEY: (state, accessKey) => {\n state.createdServiceAccountAccessKey = accessKey\n },\n SET_SERVICE_ACCOUNT_ACCESS_KEYS: (state, accessKeys) => {\n state.serviceAccountAccessKeys = accessKeys\n },\n SET_USER_SSH_KEYS: (state, userSSHKeys) => {\n state.userSSHKeys = userSSHKeys\n },\n SET_CREATED_USER_SSH_KEY: (state, createdUserSSHKey) => {\n state.createdUserSSHKey = createdUserSSHKey\n },\n },\n\n actions: {\n ListUserAccessKeys (context) {\n context.commit('SET_IAM_LOADING', true)\n return axios.get(`user-access-keys`)\n .then((response) => {\n context.commit('SET_USER_ACCESS_KEYS', response.data)\n context.commit('SET_IAM_LOADING', false)\n })\n .catch((error) => {\n context.commit('SET_IAM_ERROR', error.response.data.error.message)\n context.commit('SET_IAM_LOADING', false)\n })\n },\n CleanupCreatedUserAccessKey (context) {\n context.commit('SET_CREATED_USER_ACCESS_KEY', null)\n },\n CreateUserAccessKey (context, key) {\n context.commit('SET_IAM_ERROR', null)\n return axios.post(`user-access-keys`, key)\n .then((response) => {\n context.commit('SET_CREATED_USER_ACCESS_KEY', response.data)\n })\n .catch((error) => context.commit('SET_IAM_ERROR', error.response.data.error.message))\n },\n DeleteUserAccessKey (context, key) {\n context.commit('SET_IAM_ERROR', null)\n return axios.delete(`user-access-keys/${key.id}`)\n .then(() => {})\n .catch((error) => context.commit('SET_IAM_ERROR', error.response.data.error.message))\n },\n CreateServiceAccount (context, query) {\n context.commit('SET_IAM_ERROR', null)\n return axios.post(`/projects/${query.projectId}/serviceaccounts`, query.serviceAccount)\n .then((response) => {\n context.commit('SET_CREATED_SERVICE_ACCOUNT', response.data)\n })\n .catch((error) => context.commit('SET_IAM_ERROR', error.response.data.error.message))\n },\n ListServiceAccounts (context, query) {\n context.commit('SET_IAM_LOADING', true)\n return axios.get(`/projects/${query.projectId}/serviceaccounts?full`)\n .then((response) => {\n context.commit('SET_SERVICE_ACCOUNTS', response.data)\n context.commit('SET_IAM_LOADING', false)\n })\n .catch((error) => {\n context.commit('SET_IAM_ERROR', error.response.data.error.message)\n context.commit('SET_IAM_LOADING', false)\n })\n },\n DeleteServiceAccount (context, query) {\n context.commit('SET_IAM_ERROR', null)\n return axios.delete(`/projects/${query.projectId}/serviceaccounts/${query.serviceAccountId}`)\n .then(() => {})\n .catch((error) => context.commit('SET_IAM_ERROR', error.response.data.error.message))\n },\n CleanupCreatedServiceAccount (context) {\n context.commit('SET_CREATED_SERVICE_ACCOUNT', null)\n },\n CreateServiceAccountAccessKey (context, query) {\n context.commit('SET_IAM_ERROR', null)\n return axios.post(`/projects/${query.projectId}/serviceaccounts/${query.serviceAccount.id}/serviceaccountaccesskeys`, query.serviceAccountAccessKey)\n .then((response) => {\n context.commit('SET_CREATED_SERVICE_ACCOUNT_ACCESS_KEY', response.data)\n })\n .catch((error) => context.commit('SET_IAM_ERROR', error.response.data.error.message))\n },\n CleanupCreatedServiceAccountAccessKey (context) {\n context.commit('SET_CREATED_SERVICE_ACCOUNT_ACCESS_KEY', null)\n },\n ListServiceAccountsAccessKeys (context, query) {\n context.commit('SET_IAM_LOADING', true)\n return axios.get(`/projects/${query.projectId}/serviceaccounts/${query.serviceAccountId}/serviceaccountaccesskeys`)\n .then((response) => {\n context.commit('SET_SERVICE_ACCOUNT_ACCESS_KEYS', response.data)\n context.commit('SET_IAM_LOADING', false)\n })\n .catch((error) => {\n context.commit('SET_IAM_ERROR', error.response.data.error.message)\n context.commit('SET_IAM_LOADING', false)\n })\n },\n CleanupListServiceAccountsAccessKeys (context) {\n context.commit('SET_SERVICE_ACCOUNT_ACCESS_KEYS', [])\n },\n DeleteServiceAccountsAccessKey (context, query) {\n context.commit('SET_IAM_ERROR', null)\n return axios.delete(`/projects/${query.projectId}/serviceaccounts/${query.serviceAccountId}/serviceaccountaccesskeys/${query.accessKeyId}`)\n .then(() => {})\n .catch((error) => context.commit('SET_IAM_ERROR', error.response.data.error.message))\n },\n // User SSH keys\n ListUserSSHKeys (context) {\n context.commit('SET_IAM_LOADING', true)\n return axios.get(`user-ssh-keys`)\n .then((response) => {\n context.commit('SET_USER_SSH_KEYS', response.data)\n context.commit('SET_IAM_LOADING', false)\n })\n .catch((error) => {\n context.commit('SET_IAM_ERROR', error.response.data.error.message)\n context.commit('SET_IAM_LOADING', false)\n })\n },\n CleanupCreatedUserSSHKey (context) {\n context.commit('SET_CREATED_USER_SSH_KEY', null)\n },\n CreateUserSSHKey (context, key) {\n context.commit('SET_IAM_ERROR', null)\n return axios.post(`user-ssh-keys`, key)\n .then((response) => {\n context.commit('SET_CREATED_USER_SSH_KEY', response.data)\n })\n .catch((error) => context.commit('SET_IAM_ERROR', error.response.data.error.message))\n },\n DeleteUserSSHKey (context, key) {\n context.commit('SET_IAM_ERROR', null)\n return axios.delete(`user-ssh-keys/${key.id}`)\n .then(() => {})\n .catch((error) => context.commit('SET_IAM_ERROR', error.response.data.error.message))\n },\n }\n}\n\nexport default iam\n","import axios from 'axios'\n\nconst role = {\n state: () => ({\n loading: false,\n roles: [],\n error: null\n }),\n\n getters: {\n },\n\n mutations: {\n SET_ROLES_LOADING: (state, loading) => {\n state.loading = loading\n },\n SET_ROLES_ERROR: (state, error) => {\n state.error = error\n },\n SET_ROLES: (state, roles) => {\n state.roles = roles\n },\n },\n\n actions: {\n ListRoles (context, query) {\n context.commit('SET_ROLES_LOADING', true)\n return axios.get(`/projects/${query.projectId}/roles`)\n .then((response) => {\n context.commit('SET_ROLES', response.data)\n context.commit('SET_ROLES_LOADING', false)\n })\n .catch((error) => {\n context.commit('SET_ROLES_ERROR', error.response.data.error.message)\n context.commit('SET_ROLES_LOADING', false)\n })\n }\n }\n}\n\nexport default role\n","import axios from 'axios'\n\nconst membership = {\n state: () => ({\n loading: false,\n projectMemberships: [],\n createdMembership: null,\n error: null\n }),\n\n getters: {\n },\n\n mutations: {\n SET_MEMBERSHIPS_LOADING: (state, loading) => {\n state.loading = loading\n },\n SET_MEMBERSHIPS_ERROR: (state, error) => {\n state.error = error\n },\n SET_CREATED_MEMBERSHIP: (state, createdMembership) => {\n state.createdMembership = createdMembership\n },\n SET_MEMBERSHIPS: (state, projectMemberships) => {\n state.projectMemberships = projectMemberships\n },\n },\n\n actions: {\n ListMembershipsByProject (context, query) {\n context.commit('SET_MEMBERSHIPS_LOADING', true)\n return axios.get(`/projects/${query.projectId}/memberships?full`)\n .then((response) => {\n context.commit('SET_MEMBERSHIPS', response.data)\n context.commit('SET_MEMBERSHIPS_LOADING', false)\n })\n .catch((error) => {\n context.commit('SET_MEMBERSHIPS_ERROR', error.response.data.error.message)\n })\n },\n CreateProjectMembership (context, payload) {\n context.commit('SET_MEMBERSHIPS_ERROR', null)\n context.commit('SET_MEMBERSHIPS_LOADING', true)\n return axios.post(`/projects/${payload.projectId}/memberships`, payload)\n .then((response) => {\n context.commit('SET_CREATED_MEMBERSHIP', response.data)\n context.commit('SET_MEMBERSHIPS_LOADING', false)\n })\n .catch((error) => {\n context.commit('SET_MEMBERSHIPS_ERROR', error.response.data.error.message)\n context.commit('SET_MEMBERSHIPS_LOADING', false)\n })\n },\n DeleteProjectMembership (context, payload) {\n context.commit('SET_MEMBERSHIPS_ERROR', null)\n context.commit('SET_MEMBERSHIPS_LOADING', true)\n return axios.delete(`/projects/${payload.projectId}/memberships/${payload.userId}`)\n .then(() => {\n context.commit('SET_MEMBERSHIPS_LOADING', false)\n })\n .catch((error) => {\n context.commit('SET_MEMBERSHIPS_ERROR', error.response.data.error.message)\n context.commit('SET_MEMBERSHIPS_LOADING', false)\n })\n }\n }\n}\n\nexport default membership\n","import Vue from 'vue';\n\nexport default {\n namespaced: true,\n\n state() {\n return {\n \n };\n },\n\n actions: {\n fetch(data) {\n return Vue.auth.fetch(data);\n },\n\n refresh(data) {\n return Vue.auth.refresh(data);\n },\n\n login(ctx, data) {\n data = data || {};\n\n return new Promise((resolve, reject) => {\n Vue.auth.login({\n url: 'auth/login',\n body: data.body,\n remember: data.remember,\n staySignedIn: data.staySignedIn,\n })\n .then((res) => {\n if (data.remember) {\n Vue.auth.remember(JSON.stringify({\n name: ctx.getters.user.first_name\n }));\n }\n\n Vue.router.push({\n name: ctx.getters.user.type + '-landing'\n });\n\n resolve(res);\n }, reject);\n });\n },\n\n register(ctx, data) {\n data = data || {};\n\n return new Promise((resolve, reject) => {\n Vue.auth.register({\n url: 'auth/register',\n data: data.body,\n autoLogin: false,\n })\n .then(() => {\n if (data.autoLogin) {\n ctx.dispatch('login', data).then(resolve, reject);\n }\n }, reject);\n });\n },\n\n logout() {\n return Vue.auth.logout();\n },\n },\n\n getters: {\n user() {\n return Vue.auth.user();\n },\n\n impersonating() {\n return Vue.auth.impersonating();\n }\n }\n}","import axios from 'axios'\n\nconst admin = {\n state: () => ({\n loading: false,\n registeredUsers: [],\n whitelistedUsers: [],\n createdWhitelistedUser: {},\n error: null\n }),\n\n mutations: {\n SET_ADMIN_LOADING: (state, loading) => {\n state.loading = loading\n },\n SET_ADMIN_ERROR: (state, error) => {\n state.error = error\n },\n SET_REGISTERED_USERS: (state, registeredUsers) => {\n state.registeredUsers = registeredUsers\n },\n SET_WHITELISTED_USERS: (state, whitelistedUsers) => {\n state.whitelistedUsers = whitelistedUsers\n },\n SET_SELECTED_PROJECT: (state, selectedProjectId) => {\n state.selectedProjectId = selectedProjectId\n },\n SET_CREATED_WHITELISTED_USER: (state, whitelistedUser) => {\n state.createdWhitelistedUser = whitelistedUser\n }\n },\n\n actions: {\n ListWhitelistedUsers (context) {\n context.commit('SET_ADMIN_LOADING', true)\n return axios.get('admin/whitelisted')\n .then((response) => {\n context.commit('SET_WHITELISTED_USERS', response.data)\n context.commit('SET_ADMIN_LOADING', false)\n })\n .catch((error) => context.commit('SET_ADMIN_ERROR', error.response.data.error.message))\n },\n DeleteWhitelistedUser (context, whitelistedUser) {\n context.commit('SET_ADMIN_ERROR', null)\n return axios.delete(`admin/whitelisted/${whitelistedUser.id}`)\n .then(() => {})\n .catch((error) => context.commit('SET_ADMIN_ERROR', error.response.data.error.message))\n },\n CreateWhitelistedUser (context, whitelistedUser) {\n context.commit('SET_ADMIN_ERROR', null)\n return axios.post(`admin/whitelisted`, whitelistedUser)\n .then((response) => {\n context.commit('SET_CREATED_WHITELISTED_USER', response.data)\n })\n .catch((error) => context.commit('SET_ADMIN_ERROR', error.response.data.error.message))\n },\n ListRegisteredUsers (context) {\n context.commit('SET_ADMIN_LOADING', true)\n return axios.get('admin/users')\n .then((response) => {\n context.commit('SET_REGISTERED_USERS', response.data)\n context.commit('SET_ADMIN_LOADING', false)\n })\n .catch((error) => context.commit('SET_ADMIN_ERROR', error.response.data.error.message))\n },\n DeleteUser (context, deletingUser) {\n context.commit('SET_ADMIN_ERROR', null)\n return axios.delete(`admin/users/${deletingUser.id}`)\n .then(() => {})\n .catch((error) => context.commit('SET_ADMIN_ERROR', error.response.data.error.message))\n },\n UpdateProjectQuota (context, quota) {\n context.commit('SET_ADMIN_ERROR', null)\n\n let payload = {\n devices: quota.devices,\n applications: quota.applications,\n namespaces: quota.namespaces,\n secrets: quota.secrets,\n }\n\n return axios.put(`projects/${quota.projectId}/quota`, payload)\n .then(() => {\n // OK\n })\n .catch((error) => context.commit('SET_ADMIN_ERROR', error.response.data.error.message))\n },\n }\n}\n\nexport default admin\n","import Vue from \"vue\"\n\nconst sse = {\n state: () => ({\n index: 0, // Incremented on each action\n streamName: \"\",\n conn: null,\n }),\n\n mutations: {\n SET_SSE_STREAM: (state, streamInfo) => {\n state.streamName = streamInfo.streamName\n state.index = streamInfo.index\n },\n SET_SSE_CONN: (state, conn) => {\n // Any previous must be closed\n if (state.conn) {\n state.conn.close()\n }\n state.conn = conn\n },\n CANCEL_SSE_CONN: (state) => {\n state.streamName = ''\n state.index++\n if (state.conn) {\n state.conn.close()\n state.conn = null\n }\n },\n },\n\n actions: {\n SubscribeToSSE(context, q) {\n // Cancelling any previous stream\n if (context.state.conn) {\n context.state.conn.close()\n }\n let subscriptionIndex = context.state.index + 1\n // Need to track to which we have subscribed now\n let streamInfo = {\n streamName: q.stream,\n index: subscriptionIndex,\n }\n context.commit(\"SET_SSE_STREAM\", streamInfo)\n\n // We can expect a lot of events here, throttling them\n // every 3secs so we are not taking a toll on the browser/server\n let throttledCallback = throttle(q.callback, 3000)\n\n // Connecting to the stream\n Vue.SSE(q.stream, { format: \"json\" }).then((sse) => {\n if (\n context.state.conn != null ||\n q.stream !== context.state.streamName ||\n subscriptionIndex !== context.state.index\n ) {\n // Already connected in another stream\n sse.close()\n return\n }\n context.commit(\"SET_SSE_CONN\", sse)\n\n sse.subscribe(\"\", () => {\n throttledCallback()\n })\n })\n },\n UnsubscribeFromSSE(context) {\n context.commit(\"CANCEL_SSE_CONN\")\n },\n },\n}\n\nfunction throttle(callback, limit) {\n var wait = false // Initially, we're not waiting\n return function() {\n // We return a throttled function\n if (!wait) {\n // If we're not waiting\n callback.call() // Execute users function\n wait = true // Prevent future invocations\n setTimeout(function() {\n // After a period of time\n wait = false // And allow future invocations\n }, limit)\n }\n }\n}\n\nexport default sse\n","import axios from 'axios'\n\nconst license = {\n state: () => ({\n loading: false,\n license: {},\n error: null\n }),\n\n getters: {\n },\n\n mutations: {\n SET_LICENSE_LOADING: (state, loading) => {\n state.loading = loading\n },\n SET_LICENSE_ERROR: (state, error) => {\n state.error = error\n },\n SET_LICENSE: (state, license) => {\n state.license = license\n },\n },\n\n actions: {\n GetLicense (context) {\n context.commit('SET_LICENSE_LOADING', true)\n context.commit('SET_LICENSE_ERROR', null)\n axios.get('license')\n .then(response => {\n context.commit('SET_LICENSE', response.data)\n context.commit('SET_LICENSE_LOADING', false)\n })\n .catch(error => {\n context.commit('SET_LICENSE_LOADING', false)\n context.commit('SET_LICENSE_ERROR', error)\n })\n }\n }\n}\n\nexport default license","import axios from 'axios'\n\nconst billing = {\n state: () => ({\n loading: false,\n billingPlans: [],\n billingAccount: null,\n billingUsage: {},\n error: null,\n }),\n\n getters: {\n getBillingPlan: (state) => (billingPlanId) => {\n if (state.billingPlans.length > 0) {\n const found = state.billingPlans.find(billingPlan => {\n if (billingPlan.id == billingPlanId) {\n return billingPlan\n }\n })\n if (found) {\n return found\n }\n return {\n name: 'Unknown',\n }\n }\n return {\n name: 'Unknown',\n }\n }\n },\n\n mutations: {\n SET_BILLING_LOADING: (state, loading) => {\n state.loading = loading\n },\n SET_BILLING_ERROR: (state, error) => {\n state.error = error\n },\n SET_BILLING_PLANS: (state, billingPlans) => {\n state.billingPlans = billingPlans\n },\n SET_BILLING_ACCOUNT: (state, billingAccount) => {\n state.billingAccount = billingAccount\n }, \n SET_BILLING_ACCOUNT_USAGE: (state, billingUsage) => {\n state.billingUsage = billingUsage\n },\n },\n actions: {\n GetBillingAccount (context, query) {\n context.commit('SET_BILLING_LOADING', true)\n context.commit('SET_BILLING_ERROR', null)\n let url = `/billing/account`\n if (query.projectId) {\n url += `?projectId=${query.projectId}` \n }\n return axios.get(url)\n .then((response) => {\n context.commit('SET_BILLING_LOADING', false)\n context.commit('SET_BILLING_ACCOUNT', response.data)\n })\n .catch((error) => {\n context.commit('SET_BILLING_LOADING', false)\n context.commit('SET_BILLING_ERROR', error.response.data.error.message)\n })\n },\n GetBillingUsage (context, query) {\n context.commit('SET_BILLING_LOADING', true)\n context.commit('SET_BILLING_ERROR', null)\n return axios.get(`/billing/usage?projectId=${query.projectId}`)\n .then((response) => {\n context.commit('SET_BILLING_LOADING', false)\n context.commit('SET_BILLING_ACCOUNT_USAGE', response.data)\n })\n .catch((error) => {\n context.commit('SET_BILLING_LOADING', false)\n context.commit('SET_BILLING_ERROR', error.response.data.error.message)\n })\n },\n SetupCheckoutSession(context, query) {\n context.commit('SET_BILLING_ERROR', null)\n return axios.post(`billing/accounts/${query.id}/setup-checkout?projectId=${query.projectId}`)\n .then((response) => {\n window.location.replace(response.data.redirectUrl);\n })\n .catch((error) => context.commit('SET_BILLING_ERROR', error.response.data.error.message))\n },\n SubscribeToPlan(context, query) {\n context.commit('SET_BILLING_LOADING', true)\n context.commit('SET_BILLING_ERROR', null)\n return axios.post(`billing/checkout`, {\n planId: query.planId,\n })\n .then((response) => {\n context.commit('SET_BILLING_LOADING', false)\n if (response.data.redirectRequired) {\n window.location.replace(response.data.redirectUrl);\n return\n }\n // All good\n })\n .catch((error) => {\n context.commit('SET_BILLING_ERROR', error.response.data.error.message)\n context.commit('SET_BILLING_LOADING', false)\n })\n },\n RemovePaymentMethod(context, query) {\n context.commit('SET_BILLING_ERROR', null)\n return axios.delete(`billing/accounts/${query.id}/payment-method`)\n .then((response) => {\n context.commit('SET_BILLING_ACCOUNT', response.data)\n })\n .catch((error) => context.commit('SET_BILLING_ERROR', error.response.data.error.message))\n },\n // ListBillingPlans are the plans that are available to the user to subscribe.\n ListBillingPlans (context) {\n context.commit('SET_BILLING_LOADING', true)\n return axios.get(`/billing/plans`)\n .then((response) => {\n context.commit('SET_BILLING_PLANS', response.data)\n context.commit('SET_BILLING_LOADING', false)\n })\n .catch((error) => {\n context.commit('SET_BILLING_ERROR', error.response.data.error.message)\n context.commit('SET_BILLING_LOADING', false)\n })\n },\n UnlinkProjectFromBillingAccount(context, query) {\n context.commit('SET_BILLING_ERROR', null)\n return axios.delete(`billing/accounts/${query.id}/projects/${query.projectId}`)\n .then(() => {\n context.commit('SET_BILLING_ERROR', null)\n })\n .catch((error) => context.commit('SET_BILLING_ERROR', error.response.data.error.message))\n },\n }\n}\n\nexport default billing\n","import axios from 'axios'\n\nconst swagger = {\n state: () => ({\n spec: null,\n }),\n\n getters: {\n getSpec: (state) => {\n return state.spec\n }\n },\n\n mutations: {\n SET_SWAGGER_SPEC: (state, spec) => {\n state.spec = spec\n },\n },\n actions: {\n GetSwaggerSpec (context) {\n let path = `swagger`\n return axios.get(path)\n .then((response) => {\n context.commit('SET_SWAGGER_SPEC', response.data)\n })\n }\n }\n}\n\nexport default swagger\n","import Vue from 'vue'\nimport Vuex from 'vuex'\n\nimport user from '@/store/modules/user'\nimport notification from '@/store/modules/notification'\nimport namespace from '@/store/modules/namespace'\nimport project from '@/store/modules/project'\nimport device from '@/store/modules/device'\nimport deviceMonitor from '@/store/modules/deviceMonitor'\nimport application from '@/store/modules/application'\nimport secret from '@/store/modules/secret'\nimport iam from '@/store/modules/iam'\nimport role from '@/store/modules/role'\nimport membership from '@/store/modules/membership'\nimport auth from '@/store/modules/auth'\nimport admin from '@/store/modules/admin'\nimport sse from '@/store/modules/sse'\nimport license from '@/store/modules/license'\nimport billing from '@/store/modules/billing'\nimport swagger from '@/store/modules/swagger'\n\nVue.use(Vuex)\n\nconst debug = process.env.NODE_ENV !== 'production';\n\nexport default new Vuex.Store({\n modules: {\n license,\n sse,\n admin,\n user,\n notification,\n auth,\n project,\n device,\n deviceMonitor,\n role,\n membership,\n namespace,\n application,\n secret,\n iam,\n billing,\n swagger\n },\n\n getters: {\n jwt() {\n return localStorage.getItem(\"auth_token_default\") || ''\n },\n getApplicationsForNamespace: (state) => (namespaceId) => {\n\n if (namespaceId in state.application.applications) {\n // already loaded\n return state.application.applications[namespaceId]\n }\n\n return []\n }\n },\n\n strict: debug\n})\n"],"sourceRoot":""}