@serve.zone/interfaces 5.10.0 → 6.0.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.
package/changelog.md CHANGED
@@ -3,6 +3,15 @@
3
3
  ## Pending
4
4
 
5
5
 
6
+ ## 2026-05-25 - 6.0.0
7
+
8
+ ### Breaking Changes
9
+
10
+ - rename app catalog contracts to appstore contracts
11
+ - Replaces the `appcatalog` namespace with `appstore`
12
+ - Renames app catalog DTOs and TypedRequest methods to AppStore naming
13
+ - Adds source manifest, digest tracking, and resolved provenance fields under the new appstore contract
14
+
6
15
  ## 2026-05-24 - 5.10.0
7
16
 
8
17
  ### Features
@@ -3,7 +3,7 @@
3
3
  */
4
4
  export const commitinfo = {
5
5
  name: '@serve.zone/interfaces',
6
- version: '5.10.0',
6
+ version: '6.0.0',
7
7
  description: 'Shared TypeScript interfaces and TypedRequest contracts for the serve.zone ecosystem.'
8
8
  };
9
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMDBfY29tbWl0aW5mb19kYXRhLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vdHMvMDBfY29tbWl0aW5mb19kYXRhLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sVUFBVSxHQUFHO0lBQ3hCLElBQUksRUFBRSx3QkFBd0I7SUFDOUIsT0FBTyxFQUFFLFFBQVE7SUFDakIsV0FBVyxFQUFFLHVGQUF1RjtDQUNyRyxDQUFBIn0=
9
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMDBfY29tbWl0aW5mb19kYXRhLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vdHMvMDBfY29tbWl0aW5mb19kYXRhLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sVUFBVSxHQUFHO0lBQ3hCLElBQUksRUFBRSx3QkFBd0I7SUFDOUIsT0FBTyxFQUFFLE9BQU87SUFDaEIsV0FBVyxFQUFFLHVGQUF1RjtDQUNyRyxDQUFBIn0=
@@ -1,2 +1,2 @@
1
1
  export * from './types.js';
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi90cy9hcHBjYXRhbG9nL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsWUFBWSxDQUFDIn0=
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi90cy9hcHBzdG9yZS9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLFlBQVksQ0FBQyJ9
@@ -0,0 +1,168 @@
1
+ export type TAppStorePlatformRequirement = 'mongodb' | 's3' | 'clickhouse' | 'redis' | 'mariadb';
2
+ export type TAppStoreSourceType = 'inline' | 'repoManifest' | 'dockerImage';
3
+ export type TAppStoreTrackingMode = 'tag' | 'digest';
4
+ export type TAppStoreUpgradeStrategy = 'semver' | 'branch' | 'dockerDigest';
5
+ export interface IAppStoreInlineSource {
6
+ type: 'inline';
7
+ }
8
+ export interface IAppStoreRepoManifestSource {
9
+ type: 'repoManifest';
10
+ /** Raw URL to a servezone.appstore.json file. Can point to a branch such as main. */
11
+ url: string;
12
+ /** Optional human-readable ref, for example main, stable, or v1.2.3. */
13
+ ref?: string;
14
+ }
15
+ export interface IAppStoreDockerImageSource {
16
+ type: 'dockerImage';
17
+ /** Docker image reference. Mutable tags such as :latest are allowed when policy permits them. */
18
+ image: string;
19
+ /** Digest tracking turns mutable tag changes into explicit appstore upgrades. */
20
+ tracking?: TAppStoreTrackingMode;
21
+ }
22
+ export type TAppStoreSource = IAppStoreInlineSource | IAppStoreRepoManifestSource | IAppStoreDockerImageSource;
23
+ export interface IAppStoreResolvedSource {
24
+ type: TAppStoreSourceType;
25
+ url?: string;
26
+ ref?: string;
27
+ image?: string;
28
+ manifestHash?: string;
29
+ imageDigest?: string;
30
+ resolvedAt: string;
31
+ }
32
+ export interface IAppStoreEnvVar {
33
+ key: string;
34
+ value?: string;
35
+ description: string;
36
+ required?: boolean;
37
+ }
38
+ export interface IAppStoreVolume {
39
+ /** Stable Docker volume name. If omitted, the runtime derives one from service name and mount path. */
40
+ name?: string;
41
+ /** Alias for name when a volume is shared intentionally across services. */
42
+ source?: string;
43
+ /** Container path where the volume is mounted. */
44
+ mountPath: string;
45
+ /** Docker volume driver. Defaults to the runtime's persistent volume driver. */
46
+ driver?: string;
47
+ readOnly?: boolean;
48
+ /** Whether backup orchestration should snapshot this volume. Defaults to true. */
49
+ backup?: boolean;
50
+ /** Driver-specific options forwarded to the container runtime. */
51
+ options?: Record<string, string>;
52
+ }
53
+ export type TAppStoreVolumeSpec = string | IAppStoreVolume;
54
+ export interface IAppStorePublishedPort {
55
+ targetPort: number;
56
+ targetPortEnd?: number;
57
+ publishedPort?: number;
58
+ publishedPortEnd?: number;
59
+ protocol?: 'tcp' | 'udp';
60
+ hostIp?: string;
61
+ }
62
+ export interface IAppStoreApp {
63
+ id: string;
64
+ name: string;
65
+ description: string;
66
+ category: string;
67
+ iconName?: string;
68
+ iconUrl?: string;
69
+ latestVersion: string;
70
+ versions?: string[];
71
+ tags?: string[];
72
+ channel?: string;
73
+ upgradeStrategy?: TAppStoreUpgradeStrategy;
74
+ source?: TAppStoreSource;
75
+ /** Minimal runtime config for source-only appstore entries, typically dockerImage sources. */
76
+ runtime?: IAppStoreVersionConfig;
77
+ resolvedSource?: IAppStoreResolvedSource;
78
+ }
79
+ export interface IAppStoreIndex {
80
+ schemaVersion: number;
81
+ updatedAt: string;
82
+ resolvedAt?: string;
83
+ apps: IAppStoreApp[];
84
+ }
85
+ export interface IAppStoreAppMeta {
86
+ id: string;
87
+ name: string;
88
+ description: string;
89
+ category: string;
90
+ iconName?: string;
91
+ latestVersion: string;
92
+ versions: string[];
93
+ maintainer?: string;
94
+ links?: Record<string, string>;
95
+ tags?: string[];
96
+ source?: TAppStoreSource;
97
+ resolvedSource?: IAppStoreResolvedSource;
98
+ }
99
+ export interface IAppStoreVersionConfig {
100
+ image: string;
101
+ port: number;
102
+ envVars?: IAppStoreEnvVar[];
103
+ volumes?: TAppStoreVolumeSpec[];
104
+ publishedPorts?: IAppStorePublishedPort[];
105
+ platformRequirements?: Partial<Record<TAppStorePlatformRequirement, boolean>>;
106
+ minOneboxVersion?: string;
107
+ minCloudlyVersion?: string;
108
+ appStoreVersion?: string;
109
+ upgradeStrategy?: TAppStoreUpgradeStrategy;
110
+ source?: TAppStoreSource;
111
+ resolvedSource?: IAppStoreResolvedSource;
112
+ resolvedImageDigest?: string;
113
+ changelog?: string;
114
+ breaking?: boolean;
115
+ requiresManualReview?: boolean;
116
+ migrationRequired?: boolean;
117
+ backupBeforeUpgrade?: boolean;
118
+ requiresFeatures?: string[];
119
+ healthCheck?: {
120
+ path?: string;
121
+ port?: number;
122
+ expectedStatus?: number;
123
+ };
124
+ }
125
+ export interface IServezoneAppStoreAppInfo {
126
+ id: string;
127
+ name: string;
128
+ description: string;
129
+ category: string;
130
+ iconName?: string;
131
+ iconUrl?: string;
132
+ tags?: string[];
133
+ maintainer?: string;
134
+ links?: Record<string, string>;
135
+ }
136
+ export interface IServezoneAppStoreVersion extends IAppStoreVersionConfig {
137
+ version: string;
138
+ }
139
+ export interface IServezoneAppStoreManifest {
140
+ schemaVersion: number;
141
+ app: IServezoneAppStoreAppInfo;
142
+ latestVersion?: string;
143
+ channel?: string;
144
+ channels?: Record<string, string>;
145
+ source?: TAppStoreSource;
146
+ runtime?: IAppStoreVersionConfig;
147
+ versions?: IServezoneAppStoreVersion[];
148
+ policy?: {
149
+ allowMutableImage?: boolean;
150
+ defaultChannel?: string;
151
+ };
152
+ }
153
+ export interface IAppStoreInstallRequest {
154
+ appId: string;
155
+ version?: string;
156
+ serviceName: string;
157
+ domain?: string;
158
+ port?: number;
159
+ publishedPorts?: IAppStorePublishedPort[];
160
+ envVars?: Record<string, string>;
161
+ }
162
+ export interface IUpgradeableAppStoreService {
163
+ serviceName: string;
164
+ appTemplateId: string;
165
+ currentVersion: string;
166
+ latestVersion: string;
167
+ hasMigration: boolean;
168
+ }
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi90cy9hcHBjYXRhbG9nL3R5cGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIifQ==
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi90cy9hcHBzdG9yZS90eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIn0=
@@ -1,6 +1,6 @@
1
1
  import * as data from './data/index.js';
2
- import * as appcatalog from './appcatalog/index.js';
2
+ import * as appstore from './appstore/index.js';
3
3
  import * as platform from './platform/index.js';
4
4
  import * as platformservice from './platformservice/index.js';
5
5
  import * as requests from './requests/index.js';
6
- export { appcatalog, data, platform, platformservice, requests };
6
+ export { appstore, data, platform, platformservice, requests };
package/dist_ts/index.js CHANGED
@@ -1,7 +1,7 @@
1
1
  import * as data from './data/index.js';
2
- import * as appcatalog from './appcatalog/index.js';
2
+ import * as appstore from './appstore/index.js';
3
3
  import * as platform from './platform/index.js';
4
4
  import * as platformservice from './platformservice/index.js';
5
5
  import * as requests from './requests/index.js';
6
- export { appcatalog, data, platform, platformservice, requests };
7
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi90cy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssSUFBSSxNQUFNLGlCQUFpQixDQUFDO0FBQ3hDLE9BQU8sS0FBSyxVQUFVLE1BQU0sdUJBQXVCLENBQUM7QUFDcEQsT0FBTyxLQUFLLFFBQVEsTUFBTSxxQkFBcUIsQ0FBQztBQUNoRCxPQUFPLEtBQUssZUFBZSxNQUFNLDRCQUE0QixDQUFDO0FBQzlELE9BQU8sS0FBSyxRQUFRLE1BQU0scUJBQXFCLENBQUM7QUFFaEQsT0FBTyxFQUNMLFVBQVUsRUFDVixJQUFJLEVBQ0osUUFBUSxFQUNSLGVBQWUsRUFDZixRQUFRLEVBQ1QsQ0FBQSJ9
6
+ export { appstore, data, platform, platformservice, requests };
7
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi90cy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssSUFBSSxNQUFNLGlCQUFpQixDQUFDO0FBQ3hDLE9BQU8sS0FBSyxRQUFRLE1BQU0scUJBQXFCLENBQUM7QUFDaEQsT0FBTyxLQUFLLFFBQVEsTUFBTSxxQkFBcUIsQ0FBQztBQUNoRCxPQUFPLEtBQUssZUFBZSxNQUFNLDRCQUE0QixDQUFDO0FBQzlELE9BQU8sS0FBSyxRQUFRLE1BQU0scUJBQXFCLENBQUM7QUFFaEQsT0FBTyxFQUNMLFFBQVEsRUFDUixJQUFJLEVBQ0osUUFBUSxFQUNSLGVBQWUsRUFDZixRQUFRLEVBQ1QsQ0FBQSJ9
@@ -0,0 +1,44 @@
1
+ import * as plugins from '../plugins.js';
2
+ import type { IIdentity } from '../data/user.js';
3
+ import type { IService } from '../data/service.js';
4
+ import type { IAppStoreApp, IAppStoreAppMeta, IAppStoreInstallRequest, IAppStoreVersionConfig, IUpgradeableAppStoreService } from '../appstore/index.js';
5
+ export interface IReq_Any_GetAppStoreTemplates extends plugins.typedrequestInterfaces.implementsTR<plugins.typedrequestInterfaces.ITypedRequest, IReq_Any_GetAppStoreTemplates> {
6
+ method: 'getAppStoreTemplates';
7
+ request: {
8
+ identity: IIdentity;
9
+ };
10
+ response: {
11
+ apps: IAppStoreApp[];
12
+ };
13
+ }
14
+ export interface IReq_Any_GetAppStoreConfig extends plugins.typedrequestInterfaces.implementsTR<plugins.typedrequestInterfaces.ITypedRequest, IReq_Any_GetAppStoreConfig> {
15
+ method: 'getAppStoreConfig';
16
+ request: {
17
+ identity: IIdentity;
18
+ appId: string;
19
+ version: string;
20
+ };
21
+ response: {
22
+ config: IAppStoreVersionConfig;
23
+ appMeta: IAppStoreAppMeta;
24
+ };
25
+ }
26
+ export interface IReq_Any_InstallAppStoreApp extends plugins.typedrequestInterfaces.implementsTR<plugins.typedrequestInterfaces.ITypedRequest, IReq_Any_InstallAppStoreApp> {
27
+ method: 'installAppStoreApp';
28
+ request: {
29
+ identity: IIdentity;
30
+ install: IAppStoreInstallRequest;
31
+ };
32
+ response: {
33
+ service: IService;
34
+ };
35
+ }
36
+ export interface IReq_Any_GetUpgradeableAppStoreServices extends plugins.typedrequestInterfaces.implementsTR<plugins.typedrequestInterfaces.ITypedRequest, IReq_Any_GetUpgradeableAppStoreServices> {
37
+ method: 'getUpgradeableAppStoreServices';
38
+ request: {
39
+ identity: IIdentity;
40
+ };
41
+ response: {
42
+ services: IUpgradeableAppStoreService[];
43
+ };
44
+ }
@@ -0,0 +1,2 @@
1
+ import * as plugins from '../plugins.js';
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwc3RvcmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi90cy9yZXF1ZXN0cy9hcHBzdG9yZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssT0FBTyxNQUFNLGVBQWUsQ0FBQyJ9
@@ -1,5 +1,5 @@
1
1
  import * as adminRequests from './admin.js';
2
- import * as appCatalogRequests from './appcatalog.js';
2
+ import * as appStoreRequests from './appstore.js';
3
3
  import * as baremetalRequests from './baremetal.js';
4
4
  import * as baseOsRequests from './baseos.js';
5
5
  import * as backupRequests from './backup.js';
@@ -26,5 +26,5 @@ import * as settingsRequests from './settings.js';
26
26
  import * as statusRequests from './status.js';
27
27
  import * as taskRequests from './task.js';
28
28
  import * as versionRequests from './version.js';
29
- export { adminRequests as admin, appCatalogRequests as appcatalog, baremetalRequests as baremetal, baseOsRequests as baseos, backupRequests as backup, certificateRequests as certificate, clusterRequests as cluster, configRequests as config, deploymentRequests as deployment, dnsRequests as dns, domainRequests as domain, externalRegistryRequests as externalRegistry, identityRequests as identity, imageRequests as image, informRequests as inform, logRequests as log, networkRequests as network, nodeRequests as node, platformRequests as platform, routingRequests as routing, secretBundleRequests as secretbundle, secretGroupRequests as secretgroup, serverRequests as server, serviceRequests as service, settingsRequests as settings, statusRequests as status, taskRequests as task, versionRequests as version, };
29
+ export { adminRequests as admin, appStoreRequests as appstore, baremetalRequests as baremetal, baseOsRequests as baseos, backupRequests as backup, certificateRequests as certificate, clusterRequests as cluster, configRequests as config, deploymentRequests as deployment, dnsRequests as dns, domainRequests as domain, externalRegistryRequests as externalRegistry, identityRequests as identity, imageRequests as image, informRequests as inform, logRequests as log, networkRequests as network, nodeRequests as node, platformRequests as platform, routingRequests as routing, secretBundleRequests as secretbundle, secretGroupRequests as secretgroup, serverRequests as server, serviceRequests as service, settingsRequests as settings, statusRequests as status, taskRequests as task, versionRequests as version, };
30
30
  export * from './inform.js';
@@ -1,6 +1,6 @@
1
1
  import * as plugins from '../plugins.js';
2
2
  import * as adminRequests from './admin.js';
3
- import * as appCatalogRequests from './appcatalog.js';
3
+ import * as appStoreRequests from './appstore.js';
4
4
  import * as baremetalRequests from './baremetal.js';
5
5
  import * as baseOsRequests from './baseos.js';
6
6
  import * as backupRequests from './backup.js';
@@ -27,6 +27,6 @@ import * as settingsRequests from './settings.js';
27
27
  import * as statusRequests from './status.js';
28
28
  import * as taskRequests from './task.js';
29
29
  import * as versionRequests from './version.js';
30
- export { adminRequests as admin, appCatalogRequests as appcatalog, baremetalRequests as baremetal, baseOsRequests as baseos, backupRequests as backup, certificateRequests as certificate, clusterRequests as cluster, configRequests as config, deploymentRequests as deployment, dnsRequests as dns, domainRequests as domain, externalRegistryRequests as externalRegistry, identityRequests as identity, imageRequests as image, informRequests as inform, logRequests as log, networkRequests as network, nodeRequests as node, platformRequests as platform, routingRequests as routing, secretBundleRequests as secretbundle, secretGroupRequests as secretgroup, serverRequests as server, serviceRequests as service, settingsRequests as settings, statusRequests as status, taskRequests as task, versionRequests as version, };
30
+ export { adminRequests as admin, appStoreRequests as appstore, baremetalRequests as baremetal, baseOsRequests as baseos, backupRequests as backup, certificateRequests as certificate, clusterRequests as cluster, configRequests as config, deploymentRequests as deployment, dnsRequests as dns, domainRequests as domain, externalRegistryRequests as externalRegistry, identityRequests as identity, imageRequests as image, informRequests as inform, logRequests as log, networkRequests as network, nodeRequests as node, platformRequests as platform, routingRequests as routing, secretBundleRequests as secretbundle, secretGroupRequests as secretgroup, serverRequests as server, serviceRequests as service, settingsRequests as settings, statusRequests as status, taskRequests as task, versionRequests as version, };
31
31
  export * from './inform.js';
32
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi90cy9yZXF1ZXN0cy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssT0FBTyxNQUFNLGVBQWUsQ0FBQztBQUV6QyxPQUFPLEtBQUssYUFBYSxNQUFNLFlBQVksQ0FBQztBQUM1QyxPQUFPLEtBQUssa0JBQWtCLE1BQU0saUJBQWlCLENBQUM7QUFDdEQsT0FBTyxLQUFLLGlCQUFpQixNQUFNLGdCQUFnQixDQUFDO0FBQ3BELE9BQU8sS0FBSyxjQUFjLE1BQU0sYUFBYSxDQUFDO0FBQzlDLE9BQU8sS0FBSyxjQUFjLE1BQU0sYUFBYSxDQUFDO0FBQzlDLE9BQU8sS0FBSyxtQkFBbUIsTUFBTSxrQkFBa0IsQ0FBQztBQUN4RCxPQUFPLEtBQUssZUFBZSxNQUFNLGNBQWMsQ0FBQztBQUNoRCxPQUFPLEtBQUssY0FBYyxNQUFNLGFBQWEsQ0FBQztBQUM5QyxPQUFPLEtBQUssa0JBQWtCLE1BQU0saUJBQWlCLENBQUM7QUFDdEQsT0FBTyxLQUFLLFdBQVcsTUFBTSxVQUFVLENBQUM7QUFDeEMsT0FBTyxLQUFLLGNBQWMsTUFBTSxhQUFhLENBQUM7QUFDOUMsT0FBTyxLQUFLLHdCQUF3QixNQUFNLHVCQUF1QixDQUFDO0FBQ2xFLE9BQU8sS0FBSyxnQkFBZ0IsTUFBTSxlQUFlLENBQUM7QUFDbEQsT0FBTyxLQUFLLGFBQWEsTUFBTSxZQUFZLENBQUM7QUFDNUMsT0FBTyxLQUFLLGNBQWMsTUFBTSxhQUFhLENBQUM7QUFDOUMsT0FBTyxLQUFLLFdBQVcsTUFBTSxVQUFVLENBQUM7QUFDeEMsT0FBTyxLQUFLLGVBQWUsTUFBTSxjQUFjLENBQUM7QUFDaEQsT0FBTyxLQUFLLFlBQVksTUFBTSxXQUFXLENBQUM7QUFDMUMsT0FBTyxLQUFLLGdCQUFnQixNQUFNLGVBQWUsQ0FBQztBQUNsRCxPQUFPLEtBQUssZUFBZSxNQUFNLGNBQWMsQ0FBQztBQUNoRCxPQUFPLEtBQUssb0JBQW9CLE1BQU0sbUJBQW1CLENBQUM7QUFDMUQsT0FBTyxLQUFLLG1CQUFtQixNQUFNLGtCQUFrQixDQUFDO0FBQ3hELE9BQU8sS0FBSyxjQUFjLE1BQU0sYUFBYSxDQUFDO0FBQzlDLE9BQU8sS0FBSyxlQUFlLE1BQU0sY0FBYyxDQUFDO0FBQ2hELE9BQU8sS0FBSyxnQkFBZ0IsTUFBTSxlQUFlLENBQUM7QUFDbEQsT0FBTyxLQUFLLGNBQWMsTUFBTSxhQUFhLENBQUM7QUFDOUMsT0FBTyxLQUFLLFlBQVksTUFBTSxXQUFXLENBQUM7QUFDMUMsT0FBTyxLQUFLLGVBQWUsTUFBTSxjQUFjLENBQUM7QUFFaEQsT0FBTyxFQUNMLGFBQWEsSUFBSSxLQUFLLEVBQ3RCLGtCQUFrQixJQUFJLFVBQVUsRUFDaEMsaUJBQWlCLElBQUksU0FBUyxFQUM5QixjQUFjLElBQUksTUFBTSxFQUN4QixjQUFjLElBQUksTUFBTSxFQUN4QixtQkFBbUIsSUFBSSxXQUFXLEVBQ2xDLGVBQWUsSUFBSSxPQUFPLEVBQzFCLGNBQWMsSUFBSSxNQUFNLEVBQ3hCLGtCQUFrQixJQUFJLFVBQVUsRUFDaEMsV0FBVyxJQUFJLEdBQUcsRUFDbEIsY0FBYyxJQUFJLE1BQU0sRUFDeEIsd0JBQXdCLElBQUksZ0JBQWdCLEVBQzVDLGdCQUFnQixJQUFJLFFBQVEsRUFDNUIsYUFBYSxJQUFJLEtBQUssRUFDdEIsY0FBYyxJQUFJLE1BQU0sRUFDeEIsV0FBVyxJQUFJLEdBQUcsRUFDbEIsZUFBZSxJQUFJLE9BQU8sRUFDMUIsWUFBWSxJQUFJLElBQUksRUFDcEIsZ0JBQWdCLElBQUksUUFBUSxFQUM1QixlQUFlLElBQUksT0FBTyxFQUMxQixvQkFBb0IsSUFBSSxZQUFZLEVBQ3BDLG1CQUFtQixJQUFJLFdBQVcsRUFDbEMsY0FBYyxJQUFJLE1BQU0sRUFDeEIsZUFBZSxJQUFJLE9BQU8sRUFDMUIsZ0JBQWdCLElBQUksUUFBUSxFQUM1QixjQUFjLElBQUksTUFBTSxFQUN4QixZQUFZLElBQUksSUFBSSxFQUNwQixlQUFlLElBQUksT0FBTyxHQUMzQixDQUFDO0FBRUYsY0FBYyxhQUFhLENBQUMifQ==
32
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi90cy9yZXF1ZXN0cy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssT0FBTyxNQUFNLGVBQWUsQ0FBQztBQUV6QyxPQUFPLEtBQUssYUFBYSxNQUFNLFlBQVksQ0FBQztBQUM1QyxPQUFPLEtBQUssZ0JBQWdCLE1BQU0sZUFBZSxDQUFDO0FBQ2xELE9BQU8sS0FBSyxpQkFBaUIsTUFBTSxnQkFBZ0IsQ0FBQztBQUNwRCxPQUFPLEtBQUssY0FBYyxNQUFNLGFBQWEsQ0FBQztBQUM5QyxPQUFPLEtBQUssY0FBYyxNQUFNLGFBQWEsQ0FBQztBQUM5QyxPQUFPLEtBQUssbUJBQW1CLE1BQU0sa0JBQWtCLENBQUM7QUFDeEQsT0FBTyxLQUFLLGVBQWUsTUFBTSxjQUFjLENBQUM7QUFDaEQsT0FBTyxLQUFLLGNBQWMsTUFBTSxhQUFhLENBQUM7QUFDOUMsT0FBTyxLQUFLLGtCQUFrQixNQUFNLGlCQUFpQixDQUFDO0FBQ3RELE9BQU8sS0FBSyxXQUFXLE1BQU0sVUFBVSxDQUFDO0FBQ3hDLE9BQU8sS0FBSyxjQUFjLE1BQU0sYUFBYSxDQUFDO0FBQzlDLE9BQU8sS0FBSyx3QkFBd0IsTUFBTSx1QkFBdUIsQ0FBQztBQUNsRSxPQUFPLEtBQUssZ0JBQWdCLE1BQU0sZUFBZSxDQUFDO0FBQ2xELE9BQU8sS0FBSyxhQUFhLE1BQU0sWUFBWSxDQUFDO0FBQzVDLE9BQU8sS0FBSyxjQUFjLE1BQU0sYUFBYSxDQUFDO0FBQzlDLE9BQU8sS0FBSyxXQUFXLE1BQU0sVUFBVSxDQUFDO0FBQ3hDLE9BQU8sS0FBSyxlQUFlLE1BQU0sY0FBYyxDQUFDO0FBQ2hELE9BQU8sS0FBSyxZQUFZLE1BQU0sV0FBVyxDQUFDO0FBQzFDLE9BQU8sS0FBSyxnQkFBZ0IsTUFBTSxlQUFlLENBQUM7QUFDbEQsT0FBTyxLQUFLLGVBQWUsTUFBTSxjQUFjLENBQUM7QUFDaEQsT0FBTyxLQUFLLG9CQUFvQixNQUFNLG1CQUFtQixDQUFDO0FBQzFELE9BQU8sS0FBSyxtQkFBbUIsTUFBTSxrQkFBa0IsQ0FBQztBQUN4RCxPQUFPLEtBQUssY0FBYyxNQUFNLGFBQWEsQ0FBQztBQUM5QyxPQUFPLEtBQUssZUFBZSxNQUFNLGNBQWMsQ0FBQztBQUNoRCxPQUFPLEtBQUssZ0JBQWdCLE1BQU0sZUFBZSxDQUFDO0FBQ2xELE9BQU8sS0FBSyxjQUFjLE1BQU0sYUFBYSxDQUFDO0FBQzlDLE9BQU8sS0FBSyxZQUFZLE1BQU0sV0FBVyxDQUFDO0FBQzFDLE9BQU8sS0FBSyxlQUFlLE1BQU0sY0FBYyxDQUFDO0FBRWhELE9BQU8sRUFDTCxhQUFhLElBQUksS0FBSyxFQUN0QixnQkFBZ0IsSUFBSSxRQUFRLEVBQzVCLGlCQUFpQixJQUFJLFNBQVMsRUFDOUIsY0FBYyxJQUFJLE1BQU0sRUFDeEIsY0FBYyxJQUFJLE1BQU0sRUFDeEIsbUJBQW1CLElBQUksV0FBVyxFQUNsQyxlQUFlLElBQUksT0FBTyxFQUMxQixjQUFjLElBQUksTUFBTSxFQUN4QixrQkFBa0IsSUFBSSxVQUFVLEVBQ2hDLFdBQVcsSUFBSSxHQUFHLEVBQ2xCLGNBQWMsSUFBSSxNQUFNLEVBQ3hCLHdCQUF3QixJQUFJLGdCQUFnQixFQUM1QyxnQkFBZ0IsSUFBSSxRQUFRLEVBQzVCLGFBQWEsSUFBSSxLQUFLLEVBQ3RCLGNBQWMsSUFBSSxNQUFNLEVBQ3hCLFdBQVcsSUFBSSxHQUFHLEVBQ2xCLGVBQWUsSUFBSSxPQUFPLEVBQzFCLFlBQVksSUFBSSxJQUFJLEVBQ3BCLGdCQUFnQixJQUFJLFFBQVEsRUFDNUIsZUFBZSxJQUFJLE9BQU8sRUFDMUIsb0JBQW9CLElBQUksWUFBWSxFQUNwQyxtQkFBbUIsSUFBSSxXQUFXLEVBQ2xDLGNBQWMsSUFBSSxNQUFNLEVBQ3hCLGVBQWUsSUFBSSxPQUFPLEVBQzFCLGdCQUFnQixJQUFJLFFBQVEsRUFDNUIsY0FBYyxJQUFJLE1BQU0sRUFDeEIsWUFBWSxJQUFJLElBQUksRUFDcEIsZUFBZSxJQUFJLE9BQU8sR0FDM0IsQ0FBQztBQUVGLGNBQWMsYUFBYSxDQUFDIn0=
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@serve.zone/interfaces",
3
- "version": "5.10.0",
3
+ "version": "6.0.0",
4
4
  "private": false,
5
5
  "description": "Shared TypeScript interfaces and TypedRequest contracts for the serve.zone ecosystem.",
6
6
  "exports": {
@@ -3,6 +3,6 @@
3
3
  */
4
4
  export const commitinfo = {
5
5
  name: '@serve.zone/interfaces',
6
- version: '5.10.0',
6
+ version: '6.0.0',
7
7
  description: 'Shared TypeScript interfaces and TypedRequest contracts for the serve.zone ecosystem.'
8
8
  }
@@ -0,0 +1,189 @@
1
+ export type TAppStorePlatformRequirement = 'mongodb' | 's3' | 'clickhouse' | 'redis' | 'mariadb';
2
+ export type TAppStoreSourceType = 'inline' | 'repoManifest' | 'dockerImage';
3
+ export type TAppStoreTrackingMode = 'tag' | 'digest';
4
+ export type TAppStoreUpgradeStrategy = 'semver' | 'branch' | 'dockerDigest';
5
+
6
+ export interface IAppStoreInlineSource {
7
+ type: 'inline';
8
+ }
9
+
10
+ export interface IAppStoreRepoManifestSource {
11
+ type: 'repoManifest';
12
+ /** Raw URL to a servezone.appstore.json file. Can point to a branch such as main. */
13
+ url: string;
14
+ /** Optional human-readable ref, for example main, stable, or v1.2.3. */
15
+ ref?: string;
16
+ }
17
+
18
+ export interface IAppStoreDockerImageSource {
19
+ type: 'dockerImage';
20
+ /** Docker image reference. Mutable tags such as :latest are allowed when policy permits them. */
21
+ image: string;
22
+ /** Digest tracking turns mutable tag changes into explicit appstore upgrades. */
23
+ tracking?: TAppStoreTrackingMode;
24
+ }
25
+
26
+ export type TAppStoreSource =
27
+ | IAppStoreInlineSource
28
+ | IAppStoreRepoManifestSource
29
+ | IAppStoreDockerImageSource;
30
+
31
+ export interface IAppStoreResolvedSource {
32
+ type: TAppStoreSourceType;
33
+ url?: string;
34
+ ref?: string;
35
+ image?: string;
36
+ manifestHash?: string;
37
+ imageDigest?: string;
38
+ resolvedAt: string;
39
+ }
40
+
41
+ export interface IAppStoreEnvVar {
42
+ key: string;
43
+ value?: string;
44
+ description: string;
45
+ required?: boolean;
46
+ }
47
+
48
+ export interface IAppStoreVolume {
49
+ /** Stable Docker volume name. If omitted, the runtime derives one from service name and mount path. */
50
+ name?: string;
51
+ /** Alias for name when a volume is shared intentionally across services. */
52
+ source?: string;
53
+ /** Container path where the volume is mounted. */
54
+ mountPath: string;
55
+ /** Docker volume driver. Defaults to the runtime's persistent volume driver. */
56
+ driver?: string;
57
+ readOnly?: boolean;
58
+ /** Whether backup orchestration should snapshot this volume. Defaults to true. */
59
+ backup?: boolean;
60
+ /** Driver-specific options forwarded to the container runtime. */
61
+ options?: Record<string, string>;
62
+ }
63
+
64
+ export type TAppStoreVolumeSpec = string | IAppStoreVolume;
65
+
66
+ export interface IAppStorePublishedPort {
67
+ targetPort: number;
68
+ targetPortEnd?: number;
69
+ publishedPort?: number;
70
+ publishedPortEnd?: number;
71
+ protocol?: 'tcp' | 'udp';
72
+ hostIp?: string;
73
+ }
74
+
75
+ export interface IAppStoreApp {
76
+ id: string;
77
+ name: string;
78
+ description: string;
79
+ category: string;
80
+ iconName?: string;
81
+ iconUrl?: string;
82
+ latestVersion: string;
83
+ versions?: string[];
84
+ tags?: string[];
85
+ channel?: string;
86
+ upgradeStrategy?: TAppStoreUpgradeStrategy;
87
+ source?: TAppStoreSource;
88
+ /** Minimal runtime config for source-only appstore entries, typically dockerImage sources. */
89
+ runtime?: IAppStoreVersionConfig;
90
+ resolvedSource?: IAppStoreResolvedSource;
91
+ }
92
+
93
+ export interface IAppStoreIndex {
94
+ schemaVersion: number;
95
+ updatedAt: string;
96
+ resolvedAt?: string;
97
+ apps: IAppStoreApp[];
98
+ }
99
+
100
+ export interface IAppStoreAppMeta {
101
+ id: string;
102
+ name: string;
103
+ description: string;
104
+ category: string;
105
+ iconName?: string;
106
+ latestVersion: string;
107
+ versions: string[];
108
+ maintainer?: string;
109
+ links?: Record<string, string>;
110
+ tags?: string[];
111
+ source?: TAppStoreSource;
112
+ resolvedSource?: IAppStoreResolvedSource;
113
+ }
114
+
115
+ export interface IAppStoreVersionConfig {
116
+ image: string;
117
+ port: number;
118
+ envVars?: IAppStoreEnvVar[];
119
+ volumes?: TAppStoreVolumeSpec[];
120
+ publishedPorts?: IAppStorePublishedPort[];
121
+ platformRequirements?: Partial<Record<TAppStorePlatformRequirement, boolean>>;
122
+ minOneboxVersion?: string;
123
+ minCloudlyVersion?: string;
124
+ appStoreVersion?: string;
125
+ upgradeStrategy?: TAppStoreUpgradeStrategy;
126
+ source?: TAppStoreSource;
127
+ resolvedSource?: IAppStoreResolvedSource;
128
+ resolvedImageDigest?: string;
129
+ changelog?: string;
130
+ breaking?: boolean;
131
+ requiresManualReview?: boolean;
132
+ migrationRequired?: boolean;
133
+ backupBeforeUpgrade?: boolean;
134
+ requiresFeatures?: string[];
135
+ healthCheck?: {
136
+ path?: string;
137
+ port?: number;
138
+ expectedStatus?: number;
139
+ };
140
+ }
141
+
142
+ export interface IServezoneAppStoreAppInfo {
143
+ id: string;
144
+ name: string;
145
+ description: string;
146
+ category: string;
147
+ iconName?: string;
148
+ iconUrl?: string;
149
+ tags?: string[];
150
+ maintainer?: string;
151
+ links?: Record<string, string>;
152
+ }
153
+
154
+ export interface IServezoneAppStoreVersion extends IAppStoreVersionConfig {
155
+ version: string;
156
+ }
157
+
158
+ export interface IServezoneAppStoreManifest {
159
+ schemaVersion: number;
160
+ app: IServezoneAppStoreAppInfo;
161
+ latestVersion?: string;
162
+ channel?: string;
163
+ channels?: Record<string, string>;
164
+ source?: TAppStoreSource;
165
+ runtime?: IAppStoreVersionConfig;
166
+ versions?: IServezoneAppStoreVersion[];
167
+ policy?: {
168
+ allowMutableImage?: boolean;
169
+ defaultChannel?: string;
170
+ };
171
+ }
172
+
173
+ export interface IAppStoreInstallRequest {
174
+ appId: string;
175
+ version?: string;
176
+ serviceName: string;
177
+ domain?: string;
178
+ port?: number;
179
+ publishedPorts?: IAppStorePublishedPort[];
180
+ envVars?: Record<string, string>;
181
+ }
182
+
183
+ export interface IUpgradeableAppStoreService {
184
+ serviceName: string;
185
+ appTemplateId: string;
186
+ currentVersion: string;
187
+ latestVersion: string;
188
+ hasMigration: boolean;
189
+ }
package/ts/index.ts CHANGED
@@ -1,11 +1,11 @@
1
1
  import * as data from './data/index.js';
2
- import * as appcatalog from './appcatalog/index.js';
2
+ import * as appstore from './appstore/index.js';
3
3
  import * as platform from './platform/index.js';
4
4
  import * as platformservice from './platformservice/index.js';
5
5
  import * as requests from './requests/index.js';
6
6
 
7
7
  export {
8
- appcatalog,
8
+ appstore,
9
9
  data,
10
10
  platform,
11
11
  platformservice,
@@ -0,0 +1,66 @@
1
+ import * as plugins from '../plugins.js';
2
+ import type { IIdentity } from '../data/user.js';
3
+ import type { IService } from '../data/service.js';
4
+ import type {
5
+ IAppStoreApp,
6
+ IAppStoreAppMeta,
7
+ IAppStoreInstallRequest,
8
+ IAppStoreVersionConfig,
9
+ IUpgradeableAppStoreService,
10
+ } from '../appstore/index.js';
11
+
12
+ export interface IReq_Any_GetAppStoreTemplates extends plugins.typedrequestInterfaces.implementsTR<
13
+ plugins.typedrequestInterfaces.ITypedRequest,
14
+ IReq_Any_GetAppStoreTemplates
15
+ > {
16
+ method: 'getAppStoreTemplates';
17
+ request: {
18
+ identity: IIdentity;
19
+ };
20
+ response: {
21
+ apps: IAppStoreApp[];
22
+ };
23
+ }
24
+
25
+ export interface IReq_Any_GetAppStoreConfig extends plugins.typedrequestInterfaces.implementsTR<
26
+ plugins.typedrequestInterfaces.ITypedRequest,
27
+ IReq_Any_GetAppStoreConfig
28
+ > {
29
+ method: 'getAppStoreConfig';
30
+ request: {
31
+ identity: IIdentity;
32
+ appId: string;
33
+ version: string;
34
+ };
35
+ response: {
36
+ config: IAppStoreVersionConfig;
37
+ appMeta: IAppStoreAppMeta;
38
+ };
39
+ }
40
+
41
+ export interface IReq_Any_InstallAppStoreApp extends plugins.typedrequestInterfaces.implementsTR<
42
+ plugins.typedrequestInterfaces.ITypedRequest,
43
+ IReq_Any_InstallAppStoreApp
44
+ > {
45
+ method: 'installAppStoreApp';
46
+ request: {
47
+ identity: IIdentity;
48
+ install: IAppStoreInstallRequest;
49
+ };
50
+ response: {
51
+ service: IService;
52
+ };
53
+ }
54
+
55
+ export interface IReq_Any_GetUpgradeableAppStoreServices extends plugins.typedrequestInterfaces.implementsTR<
56
+ plugins.typedrequestInterfaces.ITypedRequest,
57
+ IReq_Any_GetUpgradeableAppStoreServices
58
+ > {
59
+ method: 'getUpgradeableAppStoreServices';
60
+ request: {
61
+ identity: IIdentity;
62
+ };
63
+ response: {
64
+ services: IUpgradeableAppStoreService[];
65
+ };
66
+ }
@@ -1,7 +1,7 @@
1
1
  import * as plugins from '../plugins.js';
2
2
 
3
3
  import * as adminRequests from './admin.js';
4
- import * as appCatalogRequests from './appcatalog.js';
4
+ import * as appStoreRequests from './appstore.js';
5
5
  import * as baremetalRequests from './baremetal.js';
6
6
  import * as baseOsRequests from './baseos.js';
7
7
  import * as backupRequests from './backup.js';
@@ -31,7 +31,7 @@ import * as versionRequests from './version.js';
31
31
 
32
32
  export {
33
33
  adminRequests as admin,
34
- appCatalogRequests as appcatalog,
34
+ appStoreRequests as appstore,
35
35
  baremetalRequests as baremetal,
36
36
  baseOsRequests as baseos,
37
37
  backupRequests as backup,
@@ -1,83 +0,0 @@
1
- export type TAppCatalogPlatformRequirement = 'mongodb' | 's3' | 'clickhouse' | 'redis' | 'mariadb';
2
- export interface IAppCatalogEnvVar {
3
- key: string;
4
- value?: string;
5
- description: string;
6
- required?: boolean;
7
- }
8
- export interface IAppCatalogVolume {
9
- /** Stable Docker volume name. If omitted, the runtime derives one from service name and mount path. */
10
- name?: string;
11
- /** Alias for name when a volume is shared intentionally across services. */
12
- source?: string;
13
- /** Container path where the volume is mounted. */
14
- mountPath: string;
15
- /** Docker volume driver. Defaults to the runtime's persistent volume driver. */
16
- driver?: string;
17
- readOnly?: boolean;
18
- /** Whether backup orchestration should snapshot this volume. Defaults to true. */
19
- backup?: boolean;
20
- /** Driver-specific options forwarded to the container runtime. */
21
- options?: Record<string, string>;
22
- }
23
- export type TAppCatalogVolumeSpec = string | IAppCatalogVolume;
24
- export interface IAppCatalogPublishedPort {
25
- targetPort: number;
26
- targetPortEnd?: number;
27
- publishedPort?: number;
28
- publishedPortEnd?: number;
29
- protocol?: 'tcp' | 'udp';
30
- hostIp?: string;
31
- }
32
- export interface ICatalogApp {
33
- id: string;
34
- name: string;
35
- description: string;
36
- category: string;
37
- iconName?: string;
38
- iconUrl?: string;
39
- latestVersion: string;
40
- tags?: string[];
41
- }
42
- export interface ICatalog {
43
- schemaVersion: number;
44
- updatedAt: string;
45
- apps: ICatalogApp[];
46
- }
47
- export interface IAppMeta {
48
- id: string;
49
- name: string;
50
- description: string;
51
- category: string;
52
- iconName?: string;
53
- latestVersion: string;
54
- versions: string[];
55
- maintainer?: string;
56
- links?: Record<string, string>;
57
- }
58
- export interface IAppVersionConfig {
59
- image: string;
60
- port: number;
61
- envVars?: IAppCatalogEnvVar[];
62
- volumes?: TAppCatalogVolumeSpec[];
63
- publishedPorts?: IAppCatalogPublishedPort[];
64
- platformRequirements?: Partial<Record<TAppCatalogPlatformRequirement, boolean>>;
65
- minOneboxVersion?: string;
66
- minCloudlyVersion?: string;
67
- }
68
- export interface IAppInstallRequest {
69
- appId: string;
70
- version?: string;
71
- serviceName: string;
72
- domain?: string;
73
- port?: number;
74
- publishedPorts?: IAppCatalogPublishedPort[];
75
- envVars?: Record<string, string>;
76
- }
77
- export interface IUpgradeableAppService {
78
- serviceName: string;
79
- appTemplateId: string;
80
- currentVersion: string;
81
- latestVersion: string;
82
- hasMigration: boolean;
83
- }
@@ -1,44 +0,0 @@
1
- import * as plugins from '../plugins.js';
2
- import type { IIdentity } from '../data/user.js';
3
- import type { IService } from '../data/service.js';
4
- import type { IAppInstallRequest, IAppMeta, IAppVersionConfig, ICatalogApp, IUpgradeableAppService } from '../appcatalog/index.js';
5
- export interface IReq_Any_GetAppCatalogTemplates extends plugins.typedrequestInterfaces.implementsTR<plugins.typedrequestInterfaces.ITypedRequest, IReq_Any_GetAppCatalogTemplates> {
6
- method: 'getAppCatalogTemplates';
7
- request: {
8
- identity: IIdentity;
9
- };
10
- response: {
11
- apps: ICatalogApp[];
12
- };
13
- }
14
- export interface IReq_Any_GetAppCatalogConfig extends plugins.typedrequestInterfaces.implementsTR<plugins.typedrequestInterfaces.ITypedRequest, IReq_Any_GetAppCatalogConfig> {
15
- method: 'getAppCatalogConfig';
16
- request: {
17
- identity: IIdentity;
18
- appId: string;
19
- version: string;
20
- };
21
- response: {
22
- config: IAppVersionConfig;
23
- appMeta: IAppMeta;
24
- };
25
- }
26
- export interface IReq_Any_InstallAppCatalogApp extends plugins.typedrequestInterfaces.implementsTR<plugins.typedrequestInterfaces.ITypedRequest, IReq_Any_InstallAppCatalogApp> {
27
- method: 'installAppCatalogApp';
28
- request: {
29
- identity: IIdentity;
30
- install: IAppInstallRequest;
31
- };
32
- response: {
33
- service: IService;
34
- };
35
- }
36
- export interface IReq_Any_GetUpgradeableAppCatalogServices extends plugins.typedrequestInterfaces.implementsTR<plugins.typedrequestInterfaces.ITypedRequest, IReq_Any_GetUpgradeableAppCatalogServices> {
37
- method: 'getUpgradeableAppCatalogServices';
38
- request: {
39
- identity: IIdentity;
40
- };
41
- response: {
42
- services: IUpgradeableAppService[];
43
- };
44
- }
@@ -1,2 +0,0 @@
1
- import * as plugins from '../plugins.js';
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwY2F0YWxvZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3RzL3JlcXVlc3RzL2FwcGNhdGFsb2cudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLE9BQU8sTUFBTSxlQUFlLENBQUMifQ==
@@ -1,93 +0,0 @@
1
- export type TAppCatalogPlatformRequirement = 'mongodb' | 's3' | 'clickhouse' | 'redis' | 'mariadb';
2
-
3
- export interface IAppCatalogEnvVar {
4
- key: string;
5
- value?: string;
6
- description: string;
7
- required?: boolean;
8
- }
9
-
10
- export interface IAppCatalogVolume {
11
- /** Stable Docker volume name. If omitted, the runtime derives one from service name and mount path. */
12
- name?: string;
13
- /** Alias for name when a volume is shared intentionally across services. */
14
- source?: string;
15
- /** Container path where the volume is mounted. */
16
- mountPath: string;
17
- /** Docker volume driver. Defaults to the runtime's persistent volume driver. */
18
- driver?: string;
19
- readOnly?: boolean;
20
- /** Whether backup orchestration should snapshot this volume. Defaults to true. */
21
- backup?: boolean;
22
- /** Driver-specific options forwarded to the container runtime. */
23
- options?: Record<string, string>;
24
- }
25
-
26
- export type TAppCatalogVolumeSpec = string | IAppCatalogVolume;
27
-
28
- export interface IAppCatalogPublishedPort {
29
- targetPort: number;
30
- targetPortEnd?: number;
31
- publishedPort?: number;
32
- publishedPortEnd?: number;
33
- protocol?: 'tcp' | 'udp';
34
- hostIp?: string;
35
- }
36
-
37
- export interface ICatalogApp {
38
- id: string;
39
- name: string;
40
- description: string;
41
- category: string;
42
- iconName?: string;
43
- iconUrl?: string;
44
- latestVersion: string;
45
- tags?: string[];
46
- }
47
-
48
- export interface ICatalog {
49
- schemaVersion: number;
50
- updatedAt: string;
51
- apps: ICatalogApp[];
52
- }
53
-
54
- export interface IAppMeta {
55
- id: string;
56
- name: string;
57
- description: string;
58
- category: string;
59
- iconName?: string;
60
- latestVersion: string;
61
- versions: string[];
62
- maintainer?: string;
63
- links?: Record<string, string>;
64
- }
65
-
66
- export interface IAppVersionConfig {
67
- image: string;
68
- port: number;
69
- envVars?: IAppCatalogEnvVar[];
70
- volumes?: TAppCatalogVolumeSpec[];
71
- publishedPorts?: IAppCatalogPublishedPort[];
72
- platformRequirements?: Partial<Record<TAppCatalogPlatformRequirement, boolean>>;
73
- minOneboxVersion?: string;
74
- minCloudlyVersion?: string;
75
- }
76
-
77
- export interface IAppInstallRequest {
78
- appId: string;
79
- version?: string;
80
- serviceName: string;
81
- domain?: string;
82
- port?: number;
83
- publishedPorts?: IAppCatalogPublishedPort[];
84
- envVars?: Record<string, string>;
85
- }
86
-
87
- export interface IUpgradeableAppService {
88
- serviceName: string;
89
- appTemplateId: string;
90
- currentVersion: string;
91
- latestVersion: string;
92
- hasMigration: boolean;
93
- }
@@ -1,66 +0,0 @@
1
- import * as plugins from '../plugins.js';
2
- import type { IIdentity } from '../data/user.js';
3
- import type { IService } from '../data/service.js';
4
- import type {
5
- IAppInstallRequest,
6
- IAppMeta,
7
- IAppVersionConfig,
8
- ICatalogApp,
9
- IUpgradeableAppService,
10
- } from '../appcatalog/index.js';
11
-
12
- export interface IReq_Any_GetAppCatalogTemplates extends plugins.typedrequestInterfaces.implementsTR<
13
- plugins.typedrequestInterfaces.ITypedRequest,
14
- IReq_Any_GetAppCatalogTemplates
15
- > {
16
- method: 'getAppCatalogTemplates';
17
- request: {
18
- identity: IIdentity;
19
- };
20
- response: {
21
- apps: ICatalogApp[];
22
- };
23
- }
24
-
25
- export interface IReq_Any_GetAppCatalogConfig extends plugins.typedrequestInterfaces.implementsTR<
26
- plugins.typedrequestInterfaces.ITypedRequest,
27
- IReq_Any_GetAppCatalogConfig
28
- > {
29
- method: 'getAppCatalogConfig';
30
- request: {
31
- identity: IIdentity;
32
- appId: string;
33
- version: string;
34
- };
35
- response: {
36
- config: IAppVersionConfig;
37
- appMeta: IAppMeta;
38
- };
39
- }
40
-
41
- export interface IReq_Any_InstallAppCatalogApp extends plugins.typedrequestInterfaces.implementsTR<
42
- plugins.typedrequestInterfaces.ITypedRequest,
43
- IReq_Any_InstallAppCatalogApp
44
- > {
45
- method: 'installAppCatalogApp';
46
- request: {
47
- identity: IIdentity;
48
- install: IAppInstallRequest;
49
- };
50
- response: {
51
- service: IService;
52
- };
53
- }
54
-
55
- export interface IReq_Any_GetUpgradeableAppCatalogServices extends plugins.typedrequestInterfaces.implementsTR<
56
- plugins.typedrequestInterfaces.ITypedRequest,
57
- IReq_Any_GetUpgradeableAppCatalogServices
58
- > {
59
- method: 'getUpgradeableAppCatalogServices';
60
- request: {
61
- identity: IIdentity;
62
- };
63
- response: {
64
- services: IUpgradeableAppService[];
65
- };
66
- }
File without changes
File without changes