@serve.zone/interfaces 5.10.0 → 6.0.1

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,21 @@
3
3
  ## Pending
4
4
 
5
5
 
6
+ ## 2026-05-26 - 6.0.1
7
+
8
+ - add App Store service upgrade contracts (appstore)
9
+ - Adds App Store upgrade preview, operation tracking, start/apply, and progress push request contracts
10
+ - Adds service-level App Store upgrade policy, published ports, and service IDs to related service types
11
+
12
+ ## 2026-05-25 - 6.0.0
13
+
14
+ ### Breaking Changes
15
+
16
+ - rename app catalog contracts to appstore contracts
17
+ - Replaces the `appcatalog` namespace with `appstore`
18
+ - Renames app catalog DTOs and TypedRequest methods to AppStore naming
19
+ - Adds source manifest, digest tracking, and resolved provenance fields under the new appstore contract
20
+
6
21
  ## 2026-05-24 - 5.10.0
7
22
 
8
23
  ### 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.1',
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,169 @@
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
+ serviceId?: string;
164
+ serviceName: string;
165
+ appTemplateId: string;
166
+ currentVersion: string;
167
+ latestVersion: string;
168
+ hasMigration: boolean;
169
+ }
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi90cy9hcHBjYXRhbG9nL3R5cGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIifQ==
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi90cy9hcHBzdG9yZS90eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIn0=
@@ -1,5 +1,6 @@
1
1
  import type { IServiceRessources } from './docker.js';
2
2
  import type { IRegistryTarget } from './registry.js';
3
+ import type { IAppStorePublishedPort } from '../appstore/index.js';
3
4
  export interface IServiceVolume {
4
5
  /** Stable Docker volume name. If omitted, Coreflow derives one from service id and mount path. */
5
6
  name?: string;
@@ -26,6 +27,7 @@ export interface IService {
26
27
  deployOnPush?: boolean;
27
28
  appTemplateId?: string;
28
29
  appTemplateVersion?: string;
30
+ appStoreUpgradePolicy?: 'manual' | 'notify' | 'auto';
29
31
  environment: {
30
32
  [key: string]: string;
31
33
  };
@@ -71,6 +73,7 @@ export interface IService {
71
73
  };
72
74
  };
73
75
  volumes?: IServiceVolume[];
76
+ publishedPorts?: IAppStorePublishedPort[];
74
77
  resources?: IServiceRessources;
75
78
  domains: {
76
79
  /**
@@ -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,133 @@
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 type TAppStoreUpgradeStatus = 'running' | 'success' | 'failed';
6
+ export type TAppStoreUpgradeStep = 'queued' | 'validating' | 'migration' | 'applying' | 'updating-service' | 'pushing-config' | 'complete' | 'failed';
7
+ export interface IAppStoreUpgradeChange {
8
+ field: string;
9
+ currentValue: string;
10
+ targetValue: string;
11
+ }
12
+ export interface IAppStoreUpgradePreview {
13
+ serviceId: string;
14
+ serviceName: string;
15
+ appTemplateId: string;
16
+ fromVersion: string;
17
+ targetVersion: string;
18
+ resolvedTargetVersion: string;
19
+ hasMigration: boolean;
20
+ requiresManualReview: boolean;
21
+ changes: IAppStoreUpgradeChange[];
22
+ warnings: string[];
23
+ blockers: string[];
24
+ config: IAppStoreVersionConfig;
25
+ appMeta: IAppStoreAppMeta;
26
+ }
27
+ export interface IAppStoreUpgradeOperation {
28
+ id: string;
29
+ serviceId: string;
30
+ serviceName: string;
31
+ appTemplateId: string;
32
+ fromVersion: string;
33
+ targetVersion: string;
34
+ status: TAppStoreUpgradeStatus;
35
+ step: TAppStoreUpgradeStep;
36
+ progressLines: string[];
37
+ warnings: string[];
38
+ error?: string;
39
+ startedAt: number;
40
+ updatedAt: number;
41
+ completedAt?: number;
42
+ service?: IService;
43
+ }
44
+ export interface IReq_Any_GetAppStoreTemplates extends plugins.typedrequestInterfaces.implementsTR<plugins.typedrequestInterfaces.ITypedRequest, IReq_Any_GetAppStoreTemplates> {
45
+ method: 'getAppStoreTemplates';
46
+ request: {
47
+ identity: IIdentity;
48
+ };
49
+ response: {
50
+ apps: IAppStoreApp[];
51
+ };
52
+ }
53
+ export interface IReq_Any_GetAppStoreConfig extends plugins.typedrequestInterfaces.implementsTR<plugins.typedrequestInterfaces.ITypedRequest, IReq_Any_GetAppStoreConfig> {
54
+ method: 'getAppStoreConfig';
55
+ request: {
56
+ identity: IIdentity;
57
+ appId: string;
58
+ version: string;
59
+ };
60
+ response: {
61
+ config: IAppStoreVersionConfig;
62
+ appMeta: IAppStoreAppMeta;
63
+ };
64
+ }
65
+ export interface IReq_Any_InstallAppStoreApp extends plugins.typedrequestInterfaces.implementsTR<plugins.typedrequestInterfaces.ITypedRequest, IReq_Any_InstallAppStoreApp> {
66
+ method: 'installAppStoreApp';
67
+ request: {
68
+ identity: IIdentity;
69
+ install: IAppStoreInstallRequest;
70
+ };
71
+ response: {
72
+ service: IService;
73
+ };
74
+ }
75
+ export interface IReq_Any_GetUpgradeableAppStoreServices extends plugins.typedrequestInterfaces.implementsTR<plugins.typedrequestInterfaces.ITypedRequest, IReq_Any_GetUpgradeableAppStoreServices> {
76
+ method: 'getUpgradeableAppStoreServices';
77
+ request: {
78
+ identity: IIdentity;
79
+ };
80
+ response: {
81
+ services: IUpgradeableAppStoreService[];
82
+ };
83
+ }
84
+ export interface IReq_Any_GetAppStoreUpgradePreview extends plugins.typedrequestInterfaces.implementsTR<plugins.typedrequestInterfaces.ITypedRequest, IReq_Any_GetAppStoreUpgradePreview> {
85
+ method: 'getAppStoreUpgradePreview';
86
+ request: {
87
+ identity: IIdentity;
88
+ serviceId: string;
89
+ targetVersion?: string;
90
+ };
91
+ response: {
92
+ preview: IAppStoreUpgradePreview;
93
+ };
94
+ }
95
+ export interface IReq_Any_UpgradeAppStoreService extends plugins.typedrequestInterfaces.implementsTR<plugins.typedrequestInterfaces.ITypedRequest, IReq_Any_UpgradeAppStoreService> {
96
+ method: 'upgradeAppStoreService';
97
+ request: {
98
+ identity: IIdentity;
99
+ serviceId: string;
100
+ targetVersion: string;
101
+ };
102
+ response: {
103
+ service: IService;
104
+ warnings: string[];
105
+ };
106
+ }
107
+ export interface IReq_Any_StartAppStoreServiceUpgrade extends plugins.typedrequestInterfaces.implementsTR<plugins.typedrequestInterfaces.ITypedRequest, IReq_Any_StartAppStoreServiceUpgrade> {
108
+ method: 'startAppStoreServiceUpgrade';
109
+ request: {
110
+ identity: IIdentity;
111
+ serviceId: string;
112
+ targetVersion: string;
113
+ };
114
+ response: {
115
+ operation: IAppStoreUpgradeOperation;
116
+ };
117
+ }
118
+ export interface IReq_Any_GetAppStoreUpgradeOperations extends plugins.typedrequestInterfaces.implementsTR<plugins.typedrequestInterfaces.ITypedRequest, IReq_Any_GetAppStoreUpgradeOperations> {
119
+ method: 'getAppStoreUpgradeOperations';
120
+ request: {
121
+ identity: IIdentity;
122
+ };
123
+ response: {
124
+ operations: IAppStoreUpgradeOperation[];
125
+ };
126
+ }
127
+ export interface IReq_Any_PushAppStoreUpgradeProgress extends plugins.typedrequestInterfaces.implementsTR<plugins.typedrequestInterfaces.ITypedRequest, IReq_Any_PushAppStoreUpgradeProgress> {
128
+ method: 'pushAppStoreUpgradeProgress';
129
+ request: {
130
+ operation: IAppStoreUpgradeOperation;
131
+ };
132
+ response: Record<string, never>;
133
+ }
@@ -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.1",
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.1',
7
7
  description: 'Shared TypeScript interfaces and TypedRequest contracts for the serve.zone ecosystem.'
8
8
  }
@@ -0,0 +1,190 @@
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
+ serviceId?: string;
185
+ serviceName: string;
186
+ appTemplateId: string;
187
+ currentVersion: string;
188
+ latestVersion: string;
189
+ hasMigration: boolean;
190
+ }
@@ -1,5 +1,6 @@
1
1
  import type { IServiceRessources } from './docker.js';
2
2
  import type { IRegistryTarget } from './registry.js';
3
+ import type { IAppStorePublishedPort } from '../appstore/index.js';
3
4
 
4
5
  export interface IServiceVolume {
5
6
  /** Stable Docker volume name. If omitted, Coreflow derives one from service id and mount path. */
@@ -28,6 +29,7 @@ export interface IService {
28
29
  deployOnPush?: boolean;
29
30
  appTemplateId?: string;
30
31
  appTemplateVersion?: string;
32
+ appStoreUpgradePolicy?: 'manual' | 'notify' | 'auto';
31
33
  environment: { [key: string]: string };
32
34
  /**
33
35
  * the main secret bundle id, exclusive to the service
@@ -74,6 +76,7 @@ export interface IService {
74
76
  custom?: { [domain: string]: string };
75
77
  };
76
78
  volumes?: IServiceVolume[];
79
+ publishedPorts?: IAppStorePublishedPort[];
77
80
  resources?: IServiceRessources;
78
81
  domains: {
79
82
  /**
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,188 @@
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 type TAppStoreUpgradeStatus = 'running' | 'success' | 'failed';
13
+
14
+ export type TAppStoreUpgradeStep =
15
+ | 'queued'
16
+ | 'validating'
17
+ | 'migration'
18
+ | 'applying'
19
+ | 'updating-service'
20
+ | 'pushing-config'
21
+ | 'complete'
22
+ | 'failed';
23
+
24
+ export interface IAppStoreUpgradeChange {
25
+ field: string;
26
+ currentValue: string;
27
+ targetValue: string;
28
+ }
29
+
30
+ export interface IAppStoreUpgradePreview {
31
+ serviceId: string;
32
+ serviceName: string;
33
+ appTemplateId: string;
34
+ fromVersion: string;
35
+ targetVersion: string;
36
+ resolvedTargetVersion: string;
37
+ hasMigration: boolean;
38
+ requiresManualReview: boolean;
39
+ changes: IAppStoreUpgradeChange[];
40
+ warnings: string[];
41
+ blockers: string[];
42
+ config: IAppStoreVersionConfig;
43
+ appMeta: IAppStoreAppMeta;
44
+ }
45
+
46
+ export interface IAppStoreUpgradeOperation {
47
+ id: string;
48
+ serviceId: string;
49
+ serviceName: string;
50
+ appTemplateId: string;
51
+ fromVersion: string;
52
+ targetVersion: string;
53
+ status: TAppStoreUpgradeStatus;
54
+ step: TAppStoreUpgradeStep;
55
+ progressLines: string[];
56
+ warnings: string[];
57
+ error?: string;
58
+ startedAt: number;
59
+ updatedAt: number;
60
+ completedAt?: number;
61
+ service?: IService;
62
+ }
63
+
64
+ export interface IReq_Any_GetAppStoreTemplates extends plugins.typedrequestInterfaces.implementsTR<
65
+ plugins.typedrequestInterfaces.ITypedRequest,
66
+ IReq_Any_GetAppStoreTemplates
67
+ > {
68
+ method: 'getAppStoreTemplates';
69
+ request: {
70
+ identity: IIdentity;
71
+ };
72
+ response: {
73
+ apps: IAppStoreApp[];
74
+ };
75
+ }
76
+
77
+ export interface IReq_Any_GetAppStoreConfig extends plugins.typedrequestInterfaces.implementsTR<
78
+ plugins.typedrequestInterfaces.ITypedRequest,
79
+ IReq_Any_GetAppStoreConfig
80
+ > {
81
+ method: 'getAppStoreConfig';
82
+ request: {
83
+ identity: IIdentity;
84
+ appId: string;
85
+ version: string;
86
+ };
87
+ response: {
88
+ config: IAppStoreVersionConfig;
89
+ appMeta: IAppStoreAppMeta;
90
+ };
91
+ }
92
+
93
+ export interface IReq_Any_InstallAppStoreApp extends plugins.typedrequestInterfaces.implementsTR<
94
+ plugins.typedrequestInterfaces.ITypedRequest,
95
+ IReq_Any_InstallAppStoreApp
96
+ > {
97
+ method: 'installAppStoreApp';
98
+ request: {
99
+ identity: IIdentity;
100
+ install: IAppStoreInstallRequest;
101
+ };
102
+ response: {
103
+ service: IService;
104
+ };
105
+ }
106
+
107
+ export interface IReq_Any_GetUpgradeableAppStoreServices extends plugins.typedrequestInterfaces.implementsTR<
108
+ plugins.typedrequestInterfaces.ITypedRequest,
109
+ IReq_Any_GetUpgradeableAppStoreServices
110
+ > {
111
+ method: 'getUpgradeableAppStoreServices';
112
+ request: {
113
+ identity: IIdentity;
114
+ };
115
+ response: {
116
+ services: IUpgradeableAppStoreService[];
117
+ };
118
+ }
119
+
120
+ export interface IReq_Any_GetAppStoreUpgradePreview extends plugins.typedrequestInterfaces.implementsTR<
121
+ plugins.typedrequestInterfaces.ITypedRequest,
122
+ IReq_Any_GetAppStoreUpgradePreview
123
+ > {
124
+ method: 'getAppStoreUpgradePreview';
125
+ request: {
126
+ identity: IIdentity;
127
+ serviceId: string;
128
+ targetVersion?: string;
129
+ };
130
+ response: {
131
+ preview: IAppStoreUpgradePreview;
132
+ };
133
+ }
134
+
135
+ export interface IReq_Any_UpgradeAppStoreService extends plugins.typedrequestInterfaces.implementsTR<
136
+ plugins.typedrequestInterfaces.ITypedRequest,
137
+ IReq_Any_UpgradeAppStoreService
138
+ > {
139
+ method: 'upgradeAppStoreService';
140
+ request: {
141
+ identity: IIdentity;
142
+ serviceId: string;
143
+ targetVersion: string;
144
+ };
145
+ response: {
146
+ service: IService;
147
+ warnings: string[];
148
+ };
149
+ }
150
+
151
+ export interface IReq_Any_StartAppStoreServiceUpgrade extends plugins.typedrequestInterfaces.implementsTR<
152
+ plugins.typedrequestInterfaces.ITypedRequest,
153
+ IReq_Any_StartAppStoreServiceUpgrade
154
+ > {
155
+ method: 'startAppStoreServiceUpgrade';
156
+ request: {
157
+ identity: IIdentity;
158
+ serviceId: string;
159
+ targetVersion: string;
160
+ };
161
+ response: {
162
+ operation: IAppStoreUpgradeOperation;
163
+ };
164
+ }
165
+
166
+ export interface IReq_Any_GetAppStoreUpgradeOperations extends plugins.typedrequestInterfaces.implementsTR<
167
+ plugins.typedrequestInterfaces.ITypedRequest,
168
+ IReq_Any_GetAppStoreUpgradeOperations
169
+ > {
170
+ method: 'getAppStoreUpgradeOperations';
171
+ request: {
172
+ identity: IIdentity;
173
+ };
174
+ response: {
175
+ operations: IAppStoreUpgradeOperation[];
176
+ };
177
+ }
178
+
179
+ export interface IReq_Any_PushAppStoreUpgradeProgress extends plugins.typedrequestInterfaces.implementsTR<
180
+ plugins.typedrequestInterfaces.ITypedRequest,
181
+ IReq_Any_PushAppStoreUpgradeProgress
182
+ > {
183
+ method: 'pushAppStoreUpgradeProgress';
184
+ request: {
185
+ operation: IAppStoreUpgradeOperation;
186
+ };
187
+ response: Record<string, never>;
188
+ }
@@ -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