UNPKG

caprover-lib

Version:

A library to communicate with CapRover instances

346 lines (300 loc) 9.15 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.CaproverApi = void 0; var _HttpClient = _interopRequireDefault(require("./HttpClient")); var _Constants = _interopRequireDefault(require("../utils/Constants")); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } class CaproverApi { constructor({ baseUrl, password = _Constants.default.DEFAULT_PASSWORD, debug = false }) { this.authToken = debug ? 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJkYXRhIjp7Im5hbWVzcGFjZSI6ImNhcHRhaW4iLCJ0b2tlblZlcnNpb24iOiI5NmRjM2U1MC00ZDk3LTRkNmItYTIzMS04MmNiZjY0ZTA2NTYifSwiaWF0IjoxNTQ1OTg0MDQwLCJleHAiOjE1ODE5ODQwNDB9.uGJyhb2JYsdw9toyMKX28bLVuB0PhnS2POwEjKpchww' : ''; this.http = new _HttpClient.default(baseUrl, this.authToken, () => { return this.getAuthToken(password); }); } callApi(path, method, /*| 'POST_DATA' Not used */ data) { const http = this.http; return Promise.resolve().then(http.fetch(method, path, data)); } destroy() { this.http.destroy(); } setAuthToken(authToken) { this.authToken = authToken; this.http.setAuthToken(authToken); } isLoggedIn() { return !!this.authToken; } getAuthToken(password) { const http = this.http; let authTokenFetched = ''; return Promise.resolve() // .then(http.fetch(http.POST, '/login', { password })).then(data => { authTokenFetched = data.token; this.setAuthToken(authTokenFetched); return authTokenFetched; }).then(function () { return authTokenFetched; }); } getCaptainInfo() { const http = this.http; return Promise.resolve() // .then(http.fetch(http.GET, '/user/system/info', {})); } updateRootDomain(rootDomain) { const http = this.http; return Promise.resolve() // .then(http.fetch(http.POST, '/user/system/changerootdomain', { rootDomain })); } enableRootSsl(emailAddress) { const http = this.http; return Promise.resolve() // .then(http.fetch(http.POST, '/user/system/enablessl', { emailAddress })); } forceSsl(isEnabled) { const http = this.http; return Promise.resolve() // .then(http.fetch(http.POST, '/user/system/forcessl', { isEnabled })); } getAllApps() { const http = this.http; return Promise.resolve() // .then(http.fetch(http.GET, '/user/apps/appDefinitions', {})); } fetchBuildLogs(appName) { const http = this.http; return Promise.resolve() // .then(http.fetch(http.GET, '/user/apps/appData/' + appName, {})); } uploadAppData(appName, file, gitHash) { const http = this.http; return Promise.resolve() // .then(http.fetch(http.POST_DATA, '/user/apps/appData/' + appName + '?detached=1', { sourceFile: file, gitHash })); } uploadCaptainDefinitionContent(appName, captainDefinition, gitHash, detached) { const http = this.http; return Promise.resolve() // .then(http.fetch(http.POST, '/user/apps/appData/' + appName + (detached ? '?detached=1' : ''), { captainDefinitionContent: JSON.stringify(captainDefinition), gitHash })); } updateConfigAndSave(appName, appDefinition) { const instanceCount = appDefinition.instanceCount; const envVars = appDefinition.envVars; const notExposeAsWebApp = appDefinition.notExposeAsWebApp; const forceSsl = appDefinition.forceSsl; const volumes = appDefinition.volumes; const ports = appDefinition.ports; const nodeId = appDefinition.nodeId; const appPushWebhook = appDefinition.appPushWebhook; const customNginxConfig = appDefinition.customNginxConfig; const preDeployFunction = appDefinition.preDeployFunction; const http = this.http; return Promise.resolve() // .then(http.fetch(http.POST, '/user/apps/appDefinitions/update', { appName, instanceCount, notExposeAsWebApp, forceSsl, volumes, ports, customNginxConfig, appPushWebhook, nodeId, preDeployFunction, envVars })); } registerNewApp(appName, hasPersistentData) { const http = this.http; return Promise.resolve() // .then(http.fetch(http.POST, '/user/apps/appDefinitions/register', { appName, hasPersistentData })); } deleteApp(appName) { const http = this.http; return Promise.resolve() // .then(http.fetch(http.POST, '/user/apps/appDefinitions/delete', { appName })); } enableSslForBaseDomain(appName) { const http = this.http; return Promise.resolve() // .then(http.fetch(http.POST, '/user/apps/appDefinitions/enablebasedomainssl', { appName })); } attachNewCustomDomainToApp(appName, customDomain) { const http = this.http; return Promise.resolve() // .then(http.fetch(http.POST, '/user/apps/appDefinitions/customdomain', { appName, customDomain })); } enableSslForCustomDomain(appName, customDomain) { const http = this.http; return Promise.resolve() // .then(http.fetch(http.POST, '/user/apps/appDefinitions/enablecustomdomainssl', { appName, customDomain })); } removeCustomDomain(appName, customDomain) { const http = this.http; return Promise.resolve() // .then(http.fetch(http.POST, '/user/apps/appDefinitions/removecustomdomain', { appName, customDomain })); } getLoadBalancerInfo() { const http = this.http; return Promise.resolve() // .then(http.fetch(http.GET, '/user/system/loadbalancerinfo', {})); } getNetDataInfo() { const http = this.http; return Promise.resolve() // .then(http.fetch(http.GET, '/user/system/netdata', {})); } updateNetDataInfo(netDataInfo) { const http = this.http; return Promise.resolve() // .then(http.fetch(http.POST, '/user/system/netdata', { netDataInfo })); } changePass(oldPassword, newPassword) { const http = this.http; return Promise.resolve() // .then(http.fetch(http.POST, '/user/changepassword', { oldPassword, newPassword })); } getVersionInfo() { const http = this.http; return Promise.resolve() // .then(http.fetch(http.GET, '/user/system/versioninfo', {})); } performUpdate(latestVersion) { const http = this.http; return Promise.resolve() // .then(http.fetch(http.POST, '/user/system/versioninfo', { latestVersion })); } getNginxConfig() { const http = this.http; return Promise.resolve() // .then(http.fetch(http.GET, '/user/system/nginxconfig', {})); } setNginxConfig(customBase, customCaptain) { const http = this.http; return Promise.resolve() // .then(http.fetch(http.POST, '/user/system/nginxconfig', { baseConfig: { customValue: customBase }, captainConfig: { customValue: customCaptain } })); } getUnusedImages(mostRecentLimit) { const http = this.http; return Promise.resolve() // .then(http.fetch(http.GET, '/user/apps/appDefinitions/unusedImages', { mostRecentLimit: mostRecentLimit + '' })); } deleteImages(imageIds) { const http = this.http; return Promise.resolve() // .then(http.fetch(http.POST, '/user/apps/appDefinitions/deleteImages', { imageIds })); } getDockerRegistries() { const http = this.http; return Promise.resolve() // .then(http.fetch(http.GET, '/user/registries', {})); } enableSelfHostedDockerRegistry() { const http = this.http; return Promise.resolve() // .then(http.fetch(http.POST, '/user/system/selfhostregistry/enableregistry', {})); } disableSelfHostedDockerRegistry() { const http = this.http; return Promise.resolve() // .then(http.fetch(http.POST, '/user/system/selfhostregistry/disableregistry', {})); } addDockerRegistry(dockerRegistry) { const http = this.http; return Promise.resolve() // .then(http.fetch(http.POST, '/user/registries/insert', { ...dockerRegistry })); } updateDockerRegistry(dockerRegistry) { const http = this.http; return Promise.resolve() // .then(http.fetch(http.POST, '/user/registries/update', { ...dockerRegistry })); } deleteDockerRegistry(registryId) { const http = this.http; return Promise.resolve() // .then(http.fetch(http.POST, '/user/registries/delete', { registryId })); } setDefaultPushDockerRegistry(registryId) { const http = this.http; return Promise.resolve() // .then(http.fetch(http.POST, '/user/registries/setpush', { registryId })); } getAllNodes() { const http = this.http; return Promise.resolve() // .then(http.fetch(http.GET, '/user/system/nodes', {})); } addDockerNode(nodeType, privateKey, remoteNodeIpAddress, captainIpAddress) { const http = this.http; return Promise.resolve() // .then(http.fetch(http.POST, '/user/system/nodes', { nodeType, privateKey, remoteNodeIpAddress, captainIpAddress })); } } exports.CaproverApi = CaproverApi;