@glasskube/distr-sdk 0.13.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (49) hide show
  1. package/dist/client/client.d.ts +29 -0
  2. package/dist/client/client.js +101 -0
  3. package/dist/client/client.js.map +1 -0
  4. package/dist/client/config.d.ts +4 -0
  5. package/dist/client/config.js +2 -0
  6. package/dist/client/config.js.map +1 -0
  7. package/dist/client/index.d.ts +2 -0
  8. package/dist/client/index.js +3 -0
  9. package/dist/client/index.js.map +1 -0
  10. package/dist/client/service.d.ts +95 -0
  11. package/dist/client/service.js +163 -0
  12. package/dist/client/service.js.map +1 -0
  13. package/dist/index.d.ts +2 -0
  14. package/dist/index.js +3 -0
  15. package/dist/index.js.map +1 -0
  16. package/dist/types/access-token.d.ts +13 -0
  17. package/dist/types/access-token.js +2 -0
  18. package/dist/types/access-token.js.map +1 -0
  19. package/dist/types/agent-version.d.ts +4 -0
  20. package/dist/types/agent-version.js +2 -0
  21. package/dist/types/agent-version.js.map +1 -0
  22. package/dist/types/application.d.ts +16 -0
  23. package/dist/types/application.js +2 -0
  24. package/dist/types/application.js.map +1 -0
  25. package/dist/types/base.d.ts +15 -0
  26. package/dist/types/base.js +2 -0
  27. package/dist/types/base.js.map +1 -0
  28. package/dist/types/deployment-target.d.ts +20 -0
  29. package/dist/types/deployment-target.js +2 -0
  30. package/dist/types/deployment-target.js.map +1 -0
  31. package/dist/types/deployment.d.ts +31 -0
  32. package/dist/types/deployment.js +2 -0
  33. package/dist/types/deployment.js.map +1 -0
  34. package/dist/types/geolocation.d.ts +4 -0
  35. package/dist/types/geolocation.js +2 -0
  36. package/dist/types/geolocation.js.map +1 -0
  37. package/dist/types/index.d.ts +10 -0
  38. package/dist/types/index.js +11 -0
  39. package/dist/types/index.js.map +1 -0
  40. package/dist/types/organization-branding.d.ts +8 -0
  41. package/dist/types/organization-branding.js +2 -0
  42. package/dist/types/organization-branding.js.map +1 -0
  43. package/dist/types/uptime.d.ts +5 -0
  44. package/dist/types/uptime.js +2 -0
  45. package/dist/types/uptime.js.map +1 -0
  46. package/dist/types/user-account.d.ts +9 -0
  47. package/dist/types/user-account.js +2 -0
  48. package/dist/types/user-account.js.map +1 -0
  49. package/package.json +29 -0
@@ -0,0 +1,29 @@
1
+ import { Application, ApplicationVersion, DeploymentRequest, DeploymentTarget, DeploymentTargetAccessResponse } from '../types';
2
+ import { ConditionalPartial, defaultClientConfig } from './config';
3
+ export type ClientConfig = {
4
+ apiBase: string;
5
+ apiKey: string;
6
+ };
7
+ export type ApplicationVersionFiles = {
8
+ composeFile?: string;
9
+ baseValuesFile?: string;
10
+ templateFile?: string;
11
+ };
12
+ export declare class Client {
13
+ private readonly config;
14
+ constructor(config: ConditionalPartial<ClientConfig, keyof typeof defaultClientConfig>);
15
+ getApplications(): Promise<Application[]>;
16
+ getApplication(applicationId: string): Promise<Application>;
17
+ createApplication(application: Application): Promise<Application>;
18
+ updateApplication(application: Application): Promise<Application>;
19
+ createApplicationVersion(applicationId: string, version: ApplicationVersion, files?: ApplicationVersionFiles): Promise<ApplicationVersion>;
20
+ getDeploymentTargets(): Promise<DeploymentTarget[]>;
21
+ getDeploymentTarget(deploymentTargetId: string): Promise<DeploymentTarget>;
22
+ createDeploymentTarget(deploymentTarget: DeploymentTarget): Promise<DeploymentTarget>;
23
+ createOrUpdateDeployment(deploymentRequest: DeploymentRequest): Promise<DeploymentRequest>;
24
+ createAccessForDeploymentTarget(deploymentTargetId: string): Promise<DeploymentTargetAccessResponse>;
25
+ private get;
26
+ private post;
27
+ private put;
28
+ private handleResponse;
29
+ }
@@ -0,0 +1,101 @@
1
+ import { defaultClientConfig } from './config';
2
+ export class Client {
3
+ config;
4
+ constructor(config) {
5
+ this.config = { ...defaultClientConfig, ...config };
6
+ if (!this.config.apiBase.endsWith('/')) {
7
+ this.config.apiBase += '/';
8
+ }
9
+ }
10
+ async getApplications() {
11
+ return this.get('applications');
12
+ }
13
+ async getApplication(applicationId) {
14
+ return this.get(`applications/${applicationId}`);
15
+ }
16
+ async createApplication(application) {
17
+ return this.post('applications', application);
18
+ }
19
+ async updateApplication(application) {
20
+ return this.put(`applications/${application.id}`, application);
21
+ }
22
+ async createApplicationVersion(applicationId, version, files) {
23
+ const formData = new FormData();
24
+ formData.append('applicationversion', JSON.stringify(version));
25
+ if (files?.composeFile) {
26
+ formData.append('composefile', new Blob([files.composeFile], { type: 'application/yaml' }));
27
+ }
28
+ if (files?.baseValuesFile) {
29
+ formData.append('valuesfile', new Blob([files.baseValuesFile], { type: 'application/yaml' }));
30
+ }
31
+ if (files?.templateFile) {
32
+ formData.append('templatefile', new Blob([files.templateFile], { type: 'application/yaml' }));
33
+ }
34
+ const path = `applications/${applicationId}/versions`;
35
+ const response = await fetch(`${this.config.apiBase}${path}`, {
36
+ method: 'POST',
37
+ headers: {
38
+ Accept: 'application/json',
39
+ Authorization: `AccessToken ${this.config.apiKey}`,
40
+ },
41
+ body: formData,
42
+ });
43
+ return this.handleResponse(response, 'POST', path);
44
+ }
45
+ async getDeploymentTargets() {
46
+ return this.get('deployment-targets');
47
+ }
48
+ async getDeploymentTarget(deploymentTargetId) {
49
+ return this.get(`deployment-targets/${deploymentTargetId}`);
50
+ }
51
+ async createDeploymentTarget(deploymentTarget) {
52
+ return this.post('deployment-targets', deploymentTarget);
53
+ }
54
+ async createOrUpdateDeployment(deploymentRequest) {
55
+ return this.put('deployments', deploymentRequest);
56
+ }
57
+ async createAccessForDeploymentTarget(deploymentTargetId) {
58
+ return this.post(`deployment-targets/${deploymentTargetId}/access-request`);
59
+ }
60
+ async get(path) {
61
+ const response = await fetch(`${this.config.apiBase}${path}`, {
62
+ method: 'GET',
63
+ headers: {
64
+ Accept: 'application/json',
65
+ Authorization: `AccessToken ${this.config.apiKey}`,
66
+ },
67
+ });
68
+ return await this.handleResponse(response, 'GET', path);
69
+ }
70
+ async post(path, body) {
71
+ const response = await fetch(`${this.config.apiBase}${path}`, {
72
+ method: 'POST',
73
+ headers: {
74
+ Accept: 'application/json',
75
+ Authorization: `AccessToken ${this.config.apiKey}`,
76
+ 'Content-Type': 'application/json',
77
+ },
78
+ body: JSON.stringify(body),
79
+ });
80
+ return await this.handleResponse(response, 'POST', path);
81
+ }
82
+ async put(path, body) {
83
+ const response = await fetch(`${this.config.apiBase}${path}`, {
84
+ method: 'PUT',
85
+ headers: {
86
+ Accept: 'application/json',
87
+ Authorization: `AccessToken ${this.config.apiKey}`,
88
+ 'Content-Type': 'application/json',
89
+ },
90
+ body: JSON.stringify(body),
91
+ });
92
+ return await this.handleResponse(response, 'PUT', path);
93
+ }
94
+ async handleResponse(response, method, path) {
95
+ if (response.status < 200 || response.status >= 300) {
96
+ throw new Error(`${method} ${path} failed: ${response.status} ${response.statusText} "${await response.text()}"`);
97
+ }
98
+ return (await response.json());
99
+ }
100
+ }
101
+ //# sourceMappingURL=client.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/client/client.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ export declare const defaultClientConfig: {
2
+ apiBase: string;
3
+ };
4
+ export type ConditionalPartial<T, K extends keyof T> = Omit<T, K> & Partial<Pick<T, K>>;
@@ -0,0 +1,2 @@
1
+ export const defaultClientConfig = { apiBase: 'https://app.distr.sh/api/v1/' };
2
+ //# sourceMappingURL=config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/client/config.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,mBAAmB,GAAG,EAAC,OAAO,EAAE,8BAA8B,EAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export * from './client';
2
+ export * from './service';
@@ -0,0 +1,3 @@
1
+ export * from './client';
2
+ export * from './service';
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/client/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC;AACzB,cAAc,WAAW,CAAC"}
@@ -0,0 +1,95 @@
1
+ import { ClientConfig } from './client';
2
+ import { Application, ApplicationVersion, DeploymentTarget, DeploymentTargetAccessResponse, DeploymentTargetScope, DeploymentType, HelmChartType } from '../types';
3
+ import { ConditionalPartial, defaultClientConfig } from './config';
4
+ export type LatestVersionStrategy = 'semver' | 'chronological';
5
+ export type CreateDeploymentParams = {
6
+ target: {
7
+ name: string;
8
+ type: DeploymentType;
9
+ kubernetes?: {
10
+ namespace: string;
11
+ scope: DeploymentTargetScope;
12
+ };
13
+ };
14
+ application: {
15
+ id?: string;
16
+ versionId?: string;
17
+ };
18
+ kubernetesDeployment?: {
19
+ releaseName: string;
20
+ valuesYaml?: string;
21
+ };
22
+ };
23
+ export type CreateDeploymentResult = {
24
+ deploymentTarget: DeploymentTarget;
25
+ access: DeploymentTargetAccessResponse;
26
+ };
27
+ export type UpdateDeploymentParams = {
28
+ deploymentTargetId: string;
29
+ applicationVersionId?: string;
30
+ kubernetesDeployment?: {
31
+ valuesYaml?: string;
32
+ };
33
+ };
34
+ export type IsOutdatedResult = {
35
+ deploymentTarget: DeploymentTarget;
36
+ application: Application;
37
+ newerVersions: ApplicationVersion[];
38
+ outdated: boolean;
39
+ };
40
+ export declare class DistrService {
41
+ private readonly latestVersionStrategy;
42
+ private readonly client;
43
+ /**
44
+ * Creates a new DistrService instance, which provides a higher-level API for the Distr API. A client config
45
+ * containing the API base URL and an API key must be provided. Optionally, a strategy for determining the latest
46
+ * version of an application can be specified – the default is semantic versioning.
47
+ * @param config
48
+ * @param latestVersionStrategy
49
+ */
50
+ constructor(config: ConditionalPartial<ClientConfig, keyof typeof defaultClientConfig>, latestVersionStrategy?: LatestVersionStrategy);
51
+ createDockerApplicationVersion(applicationId: string, name: string, composeFile: string): Promise<ApplicationVersion>;
52
+ createKubernetesApplicationVersion(applicationId: string, versionName: string, data: {
53
+ chartName: string;
54
+ chartVersion: string;
55
+ chartType: HelmChartType;
56
+ chartUrl: string;
57
+ baseValuesFile?: string;
58
+ templateFile?: string;
59
+ }): Promise<ApplicationVersion>;
60
+ /**
61
+ * Creates a new deployment target and deploys the given application version to it.
62
+ * * If deployment type is 'kubernetes', the namespace and scope must be provided.
63
+ * * If deployment type is 'kubernetes', the helm release name and values YAML can be provided.
64
+ * * If no application version ID is given, the latest version of the application will be deployed.
65
+ * @param params
66
+ */
67
+ createDeployment(params: CreateDeploymentParams): Promise<CreateDeploymentResult>;
68
+ /**
69
+ * Updates the deployment of an existing deployment target. If no application version ID is given, the latest version
70
+ * of the already deployed application will be deployed.
71
+ * @param params
72
+ */
73
+ updateDeployment(params: UpdateDeploymentParams): Promise<void>;
74
+ /**
75
+ * Checks if the given deployment target is outdated, i.e. if there is a newer version of the application available.
76
+ * The result additionally contains versions that are newer than the currently deployed one, ordered ascending.
77
+ * @param deploymentTargetId
78
+ */
79
+ isOutdated(deploymentTargetId: string): Promise<IsOutdatedResult>;
80
+ /**
81
+ * Returns the latest version of the given application according to the specified strategy.
82
+ * @param appId
83
+ */
84
+ getLatestVersion(appId: string): Promise<ApplicationVersion | undefined>;
85
+ /**
86
+ * Returns the application and all versions that are newer than the given version ID. If no version ID is given,
87
+ * all versions are considered. The versions are ordered ascending according to the given strategy.
88
+ * @param appId
89
+ * @param currentVersionId
90
+ */
91
+ getNewerVersions(appId: string, currentVersionId?: string): Promise<{
92
+ app: Application;
93
+ newerVersions: ApplicationVersion[];
94
+ }>;
95
+ }
@@ -0,0 +1,163 @@
1
+ import { Client } from './client';
2
+ import semver from 'semver/preload';
3
+ export class DistrService {
4
+ latestVersionStrategy;
5
+ client;
6
+ /**
7
+ * Creates a new DistrService instance, which provides a higher-level API for the Distr API. A client config
8
+ * containing the API base URL and an API key must be provided. Optionally, a strategy for determining the latest
9
+ * version of an application can be specified – the default is semantic versioning.
10
+ * @param config
11
+ * @param latestVersionStrategy
12
+ */
13
+ constructor(config, latestVersionStrategy = 'semver') {
14
+ this.latestVersionStrategy = latestVersionStrategy;
15
+ this.client = new Client(config);
16
+ }
17
+ async createDockerApplicationVersion(applicationId, name, composeFile) {
18
+ return this.client.createApplicationVersion(applicationId, { name }, { composeFile });
19
+ }
20
+ async createKubernetesApplicationVersion(applicationId, versionName, data) {
21
+ return this.client.createApplicationVersion(applicationId, {
22
+ name: versionName,
23
+ chartName: data.chartName,
24
+ chartVersion: data.chartVersion,
25
+ chartType: data.chartType,
26
+ chartUrl: data.chartUrl,
27
+ }, {
28
+ baseValuesFile: data.baseValuesFile,
29
+ templateFile: data.templateFile,
30
+ });
31
+ }
32
+ /**
33
+ * Creates a new deployment target and deploys the given application version to it.
34
+ * * If deployment type is 'kubernetes', the namespace and scope must be provided.
35
+ * * If deployment type is 'kubernetes', the helm release name and values YAML can be provided.
36
+ * * If no application version ID is given, the latest version of the application will be deployed.
37
+ * @param params
38
+ */
39
+ async createDeployment(params) {
40
+ const { target, application, kubernetesDeployment } = params;
41
+ let versionId = application.versionId;
42
+ if (!versionId) {
43
+ if (!application.id) {
44
+ throw new Error('application ID or version ID must be provided');
45
+ }
46
+ const latest = await this.getLatestVersion(application.id);
47
+ if (!latest) {
48
+ throw new Error('no version available for this application');
49
+ }
50
+ versionId = latest.id;
51
+ }
52
+ const deploymentTarget = await this.client.createDeploymentTarget({
53
+ name: target.name,
54
+ type: target.type,
55
+ namespace: target.kubernetes?.namespace,
56
+ scope: target.kubernetes?.scope,
57
+ });
58
+ await this.client.createOrUpdateDeployment({
59
+ deploymentTargetId: deploymentTarget.id,
60
+ applicationVersionId: versionId,
61
+ releaseName: kubernetesDeployment?.releaseName,
62
+ valuesYaml: kubernetesDeployment?.valuesYaml ? btoa(kubernetesDeployment?.valuesYaml) : undefined,
63
+ });
64
+ return {
65
+ deploymentTarget: await this.client.getDeploymentTarget(deploymentTarget.id),
66
+ access: await this.client.createAccessForDeploymentTarget(deploymentTarget.id),
67
+ };
68
+ }
69
+ /**
70
+ * Updates the deployment of an existing deployment target. If no application version ID is given, the latest version
71
+ * of the already deployed application will be deployed.
72
+ * @param params
73
+ */
74
+ async updateDeployment(params) {
75
+ const { deploymentTargetId, applicationVersionId, kubernetesDeployment } = params;
76
+ const existing = await this.client.getDeploymentTarget(deploymentTargetId);
77
+ if (!existing.deployment && !applicationVersionId) {
78
+ throw new Error('cannot update deployment, because nothing deployed yet');
79
+ }
80
+ let versionId = applicationVersionId;
81
+ if (!versionId) {
82
+ const res = await this.isOutdated(existing.id);
83
+ if (res.outdated && res.newerVersions.length > 0) {
84
+ versionId = res.newerVersions[res.newerVersions.length - 1].id;
85
+ }
86
+ else if (existing.deployment) {
87
+ // version stays the same, other params might have changed
88
+ versionId = existing.deployment.applicationVersionId;
89
+ }
90
+ else {
91
+ throw new Error('cannot update deployment, because nothing deployed yet');
92
+ }
93
+ }
94
+ await this.client.createOrUpdateDeployment({
95
+ deploymentTargetId,
96
+ deploymentId: existing.deployment?.id,
97
+ applicationVersionId: versionId,
98
+ valuesYaml: kubernetesDeployment?.valuesYaml ? btoa(kubernetesDeployment?.valuesYaml) : undefined,
99
+ });
100
+ }
101
+ /**
102
+ * Checks if the given deployment target is outdated, i.e. if there is a newer version of the application available.
103
+ * The result additionally contains versions that are newer than the currently deployed one, ordered ascending.
104
+ * @param deploymentTargetId
105
+ */
106
+ async isOutdated(deploymentTargetId) {
107
+ const existing = await this.client.getDeploymentTarget(deploymentTargetId);
108
+ if (!existing.deployment) {
109
+ throw new Error('nothing deployed yet');
110
+ }
111
+ const { app, newerVersions } = await this.getNewerVersions(existing.deployment.applicationId, existing.deployment.applicationVersionId);
112
+ return {
113
+ deploymentTarget: existing,
114
+ application: app,
115
+ newerVersions: newerVersions,
116
+ outdated: newerVersions.length > 0,
117
+ };
118
+ }
119
+ /**
120
+ * Returns the latest version of the given application according to the specified strategy.
121
+ * @param appId
122
+ */
123
+ async getLatestVersion(appId) {
124
+ const { newerVersions } = await this.getNewerVersions(appId);
125
+ return newerVersions.length > 0 ? newerVersions[newerVersions.length - 1] : undefined;
126
+ }
127
+ /**
128
+ * Returns the application and all versions that are newer than the given version ID. If no version ID is given,
129
+ * all versions are considered. The versions are ordered ascending according to the given strategy.
130
+ * @param appId
131
+ * @param currentVersionId
132
+ */
133
+ async getNewerVersions(appId, currentVersionId) {
134
+ const app = await this.client.getApplication(appId);
135
+ const currentVersion = (app.versions || []).find((it) => it.id === currentVersionId);
136
+ if (!currentVersion && currentVersionId) {
137
+ throw new Error('given version ID does not exist in this application');
138
+ }
139
+ const newerVersions = (app.versions || [])
140
+ .filter((it) => {
141
+ if (!currentVersion) {
142
+ return true;
143
+ }
144
+ // surely there are fancier ways to deal with strategies but that's it for now
145
+ switch (this.latestVersionStrategy) {
146
+ case 'semver':
147
+ return semver.gt(it.name, currentVersion.name, { loose: true });
148
+ case 'chronological':
149
+ return it.createdAt > currentVersion.createdAt; // TODO proper date handling maybe
150
+ }
151
+ })
152
+ .sort((a, b) => {
153
+ switch (this.latestVersionStrategy) {
154
+ case 'semver':
155
+ return semver.compare(a.name, b.name, { loose: true });
156
+ case 'chronological':
157
+ return a.createdAt?.localeCompare(b.createdAt) ?? 0; // TODO proper date handling maybe
158
+ }
159
+ });
160
+ return { app, newerVersions };
161
+ }
162
+ }
163
+ //# sourceMappingURL=service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"service.js","sourceRoot":"","sources":["../../src/client/service.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export * from './client';
2
+ export * from './types';
package/dist/index.js ADDED
@@ -0,0 +1,3 @@
1
+ export * from './client';
2
+ export * from './types';
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC;AACzB,cAAc,SAAS,CAAC"}
@@ -0,0 +1,13 @@
1
+ import { BaseModel } from './base';
2
+ export interface AccessToken extends BaseModel {
3
+ expiresAt?: string;
4
+ lastUsedAt?: string;
5
+ label?: string;
6
+ }
7
+ export interface AccessTokenWithKey extends AccessToken {
8
+ key: string;
9
+ }
10
+ export interface CreateAccessTokenRequest {
11
+ label?: string;
12
+ expiresAt?: Date;
13
+ }
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=access-token.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"access-token.js","sourceRoot":"","sources":["../../src/types/access-token.ts"],"names":[],"mappings":""}
@@ -0,0 +1,4 @@
1
+ import { BaseModel } from './base';
2
+ export interface AgentVersion extends BaseModel {
3
+ name: string;
4
+ }
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=agent-version.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agent-version.js","sourceRoot":"","sources":["../../src/types/agent-version.ts"],"names":[],"mappings":""}
@@ -0,0 +1,16 @@
1
+ import { BaseModel, Named } from './base';
2
+ import { DeploymentType, HelmChartType } from './deployment';
3
+ export interface Application extends BaseModel, Named {
4
+ type: DeploymentType;
5
+ versions?: ApplicationVersion[];
6
+ }
7
+ export interface ApplicationVersion {
8
+ id?: string;
9
+ name?: string;
10
+ createdAt?: string;
11
+ applicationId?: string;
12
+ chartType?: HelmChartType;
13
+ chartName?: string;
14
+ chartUrl?: string;
15
+ chartVersion?: string;
16
+ }
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=application.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"application.js","sourceRoot":"","sources":["../../src/types/application.ts"],"names":[],"mappings":""}
@@ -0,0 +1,15 @@
1
+ export interface BaseModel {
2
+ id?: string;
3
+ createdAt?: string;
4
+ }
5
+ export interface Named {
6
+ name?: string;
7
+ }
8
+ export interface TokenResponse {
9
+ token: string;
10
+ }
11
+ export interface DeploymentTargetAccessResponse {
12
+ connectUrl: string;
13
+ targetId: string;
14
+ targetSecret: string;
15
+ }
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=base.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"base.js","sourceRoot":"","sources":["../../src/types/base.ts"],"names":[],"mappings":""}
@@ -0,0 +1,20 @@
1
+ import { AgentVersion } from './agent-version';
2
+ import { BaseModel, Named } from './base';
3
+ import { DeploymentTargetScope, DeploymentType, DeploymentWithLatestRevision } from './deployment';
4
+ import { Geolocation } from './geolocation';
5
+ import { UserAccountWithRole } from './user-account';
6
+ export interface DeploymentTarget extends BaseModel, Named {
7
+ name: string;
8
+ type: DeploymentType;
9
+ namespace?: string;
10
+ scope?: DeploymentTargetScope;
11
+ geolocation?: Geolocation;
12
+ createdBy?: UserAccountWithRole;
13
+ currentStatus?: DeploymentTargetStatus;
14
+ deployment?: DeploymentWithLatestRevision;
15
+ agentVersion?: AgentVersion;
16
+ reportedAgentVersionId?: string;
17
+ }
18
+ export interface DeploymentTargetStatus extends BaseModel {
19
+ message: string;
20
+ }
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=deployment-target.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"deployment-target.js","sourceRoot":"","sources":["../../src/types/deployment-target.ts"],"names":[],"mappings":""}
@@ -0,0 +1,31 @@
1
+ import { BaseModel } from './base';
2
+ export interface Deployment extends BaseModel {
3
+ deploymentTargetId: string;
4
+ releaseName?: string;
5
+ note?: string;
6
+ }
7
+ export interface DeploymentRequest {
8
+ deploymentTargetId: string;
9
+ deploymentId?: string;
10
+ applicationVersionId: string;
11
+ releaseName?: string;
12
+ valuesYaml?: string;
13
+ note?: string;
14
+ }
15
+ export interface DeploymentWithLatestRevision extends Deployment {
16
+ applicationId: string;
17
+ applicationName: string;
18
+ applicationVersionId: string;
19
+ applicationVersionName: string;
20
+ valuesYaml?: string;
21
+ deploymentRevisionId?: string;
22
+ latestStatus?: DeploymentRevisionStatus;
23
+ }
24
+ export interface DeploymentRevisionStatus extends BaseModel {
25
+ type: DeploymentStatusType;
26
+ message: string;
27
+ }
28
+ export type DeploymentType = 'docker' | 'kubernetes';
29
+ export type HelmChartType = 'repository' | 'oci';
30
+ export type DeploymentStatusType = 'ok' | 'error';
31
+ export type DeploymentTargetScope = 'cluster' | 'namespace';
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=deployment.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"deployment.js","sourceRoot":"","sources":["../../src/types/deployment.ts"],"names":[],"mappings":""}
@@ -0,0 +1,4 @@
1
+ export interface Geolocation {
2
+ lat: number;
3
+ lon: number;
4
+ }
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=geolocation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"geolocation.js","sourceRoot":"","sources":["../../src/types/geolocation.ts"],"names":[],"mappings":""}
@@ -0,0 +1,10 @@
1
+ export * from './access-token';
2
+ export * from './agent-version';
3
+ export * from './application';
4
+ export * from './base';
5
+ export * from './deployment';
6
+ export * from './deployment-target';
7
+ export * from './geolocation';
8
+ export * from './organization-branding';
9
+ export * from './uptime';
10
+ export * from './user-account';
@@ -0,0 +1,11 @@
1
+ export * from './access-token';
2
+ export * from './agent-version';
3
+ export * from './application';
4
+ export * from './base';
5
+ export * from './deployment';
6
+ export * from './deployment-target';
7
+ export * from './geolocation';
8
+ export * from './organization-branding';
9
+ export * from './uptime';
10
+ export * from './user-account';
11
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,iBAAiB,CAAC;AAChC,cAAc,eAAe,CAAC;AAC9B,cAAc,QAAQ,CAAC;AACvB,cAAc,cAAc,CAAC;AAC7B,cAAc,qBAAqB,CAAC;AACpC,cAAc,eAAe,CAAC;AAC9B,cAAc,yBAAyB,CAAC;AACxC,cAAc,UAAU,CAAC;AACzB,cAAc,gBAAgB,CAAC"}
@@ -0,0 +1,8 @@
1
+ import { BaseModel } from './base';
2
+ export interface OrganizationBranding extends BaseModel {
3
+ title?: string;
4
+ description?: string;
5
+ logo?: string;
6
+ logoFileName?: string;
7
+ logoContentType?: string;
8
+ }
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=organization-branding.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"organization-branding.js","sourceRoot":"","sources":["../../src/types/organization-branding.ts"],"names":[],"mappings":""}
@@ -0,0 +1,5 @@
1
+ export interface UptimeMetric {
2
+ hour: string;
3
+ total: number;
4
+ unknown: number;
5
+ }
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=uptime.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"uptime.js","sourceRoot":"","sources":["../../src/types/uptime.ts"],"names":[],"mappings":""}
@@ -0,0 +1,9 @@
1
+ import { BaseModel } from './base';
2
+ export type UserRole = 'vendor' | 'customer';
3
+ export interface UserAccount extends BaseModel {
4
+ email: string;
5
+ name?: string;
6
+ }
7
+ export interface UserAccountWithRole extends UserAccount {
8
+ userRole: UserRole;
9
+ }
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=user-account.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"user-account.js","sourceRoot":"","sources":["../../src/types/user-account.ts"],"names":[],"mappings":""}
package/package.json ADDED
@@ -0,0 +1,29 @@
1
+ {
2
+ "name": "@glasskube/distr-sdk",
3
+ "version": "0.13.0",
4
+ "type": "module",
5
+ "license": "Apache-2.0",
6
+ "description": "Distr SDK",
7
+ "homepage": "https://glasskube.dev/products/distr/",
8
+ "repository": {
9
+ "type": "git",
10
+ "url": "git+https://github.com/glasskube/distr.git",
11
+ "directory": "sdk/js"
12
+ },
13
+ "main": "dist/index.js",
14
+ "types": "dist/index.d.ts",
15
+ "scripts": {
16
+ "build": "rimraf dist && tsc"
17
+ },
18
+ "files": [
19
+ "dist/"
20
+ ],
21
+ "dependencies": {
22
+ "semver": "^7.6.3"
23
+ },
24
+ "devDependencies": {
25
+ "@types/semver": "^7.5.8",
26
+ "rimraf": "^6.0.1",
27
+ "typescript": "^5.7.3"
28
+ }
29
+ }