@fourier-labs/harbour-contracts 0.59.0 → 0.61.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/contract-release.json +10 -8
- package/dist/gen-ts/contract-release.d.ts +6 -6
- package/dist/gen-ts/contract-release.js +6 -6
- package/dist/gen-ts/deployment-app-registration.d.ts +18 -0
- package/dist/gen-ts/deployment-app-registration.js +3 -0
- package/dist/gen-ts/index.d.ts +1 -0
- package/dist/gen-ts/index.js +1 -0
- package/dist/naming/index.d.ts +2 -0
- package/dist/naming/index.js +14 -0
- package/gen-ts/contract-release.ts +6 -6
- package/gen-ts/deployment-app-registration.ts +21 -0
- package/gen-ts/index.ts +1 -0
- package/package.json +6 -2
- package/schema/deployment-app-registration.schema.json +24 -0
package/contract-release.json
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"schema": "harbour.contract-release/1.0",
|
|
3
|
-
"repositoryVersion": "0.
|
|
4
|
-
"publishVersion": "0.
|
|
5
|
-
"publishTag": "v0.
|
|
6
|
-
"schemasDigest": "sha256:
|
|
3
|
+
"repositoryVersion": "0.61.0.0",
|
|
4
|
+
"publishVersion": "0.61.0",
|
|
5
|
+
"publishTag": "v0.61.0",
|
|
6
|
+
"schemasDigest": "sha256:c284a3092527ebffa70a2e95796cad127ab38cbdf30dbf7b13ad40f8e2c362cd",
|
|
7
7
|
"aiFixturesDigest": "sha256:edac31c92e146ca1c40130f2fb5649db82e24b8cd1ac758153b90612052fddb6",
|
|
8
|
-
"generatedGoDigest": "sha256:
|
|
9
|
-
"generatedTypeScriptDigest": "sha256:
|
|
8
|
+
"generatedGoDigest": "sha256:d1d612de9d0191b9612092a4f7eec24b4a4721ad7740e0f6c48aa5a554a7a0b8",
|
|
9
|
+
"generatedTypeScriptDigest": "sha256:43a874440156c76f797fcedbe0d9bdddb5d43c3265962fc2a7138e422ba590cd",
|
|
10
10
|
"generatedExclusions": {
|
|
11
11
|
"gen-go/contract_release.go": "contains the generated aggregate digests (self-reference)",
|
|
12
12
|
"gen-ts/contract-release.ts": "contains the generated aggregate digests (self-reference)"
|
|
@@ -41,6 +41,7 @@
|
|
|
41
41
|
"schema/data-source.schema.json": "sha256:899384f4f11b05d2737766918ab47987b11ed49f1160220a55a367fed96f6f2c",
|
|
42
42
|
"schema/deploy-request.schema.json": "sha256:32531e21983cdfeec511f8b4cddd4dad6530cd90e4e9fe147225d78d138b6198",
|
|
43
43
|
"schema/deploy-response.schema.json": "sha256:09064948abdbba7022738285d802ed44648a16ddc2a5b8c2eeb170ae19a66aeb",
|
|
44
|
+
"schema/deployment-app-registration.schema.json": "sha256:50bc8e308fca14d014a50d96ef1cf403eeeca5c3caea4a204fe15f0080efed32",
|
|
44
45
|
"schema/deployment-continuation.schema.json": "sha256:55b6945439f2c91cd851dfe4bc9484e67a64091b7763b2d8267354b4a8bfae8c",
|
|
45
46
|
"schema/deployment-environment.schema.json": "sha256:35b26cae07da9ee375a842b5e87c4570c8eca06775e9fd6dd46eb9eb8aa0df6c",
|
|
46
47
|
"schema/deployment-source.schema.json": "sha256:256988b1efbfc90bd0e1ae31a2c5d69b20ef1e4471dc24c9f9aa759278270fbe",
|
|
@@ -108,7 +109,7 @@
|
|
|
108
109
|
"gen-go/integration_execute_input_rules.go": "sha256:52a405aa7a97f7b4e2ed3c314a7bd28b7698cc7883ee72ad4c027637be602ab9",
|
|
109
110
|
"gen-go/integration_execute_input_rules_test.go": "sha256:c437a8406a2f062a0173b9419e4cb176fc6eb54e569506225d5162323f55b40b",
|
|
110
111
|
"gen-go/schema_documents.go": "sha256:c19c0d540f602ee997a84b90e20702d9bc63ed7d27aec267e76c04655fc182e0",
|
|
111
|
-
"gen-go/types.go": "sha256:
|
|
112
|
+
"gen-go/types.go": "sha256:a6c736b5dc1a51dd9289ff4a14ecf1d84196ae5fc3c5fba493db5feb8c3f2b4b",
|
|
112
113
|
"gen-go/version_state.go": "sha256:4ef8abb126414c0025cf2c59bc9c79a74ef4a2ff89e8f316cbf05acc872371c1"
|
|
113
114
|
},
|
|
114
115
|
"generatedTypeScript": {
|
|
@@ -144,6 +145,7 @@
|
|
|
144
145
|
"gen-ts/data-source.ts": "sha256:1a40c252e94ee717d287ba63647e4368668dad9ea731770f8b58deb17d18b311",
|
|
145
146
|
"gen-ts/deploy-request.ts": "sha256:0214faa8be6680f0bfc117d5ce67c1a59fcc18bd0ea4bc840e03e7d051fa9ab6",
|
|
146
147
|
"gen-ts/deploy-response.ts": "sha256:364d9f1acf32e491498237cdd3f402d5f8e102f208db7748034f4ec68c6a6137",
|
|
148
|
+
"gen-ts/deployment-app-registration.ts": "sha256:07f840a82dddd770e54e1020a034cdbfc84e226a94131e3f5a4cdd5da8acc2f0",
|
|
147
149
|
"gen-ts/deployment-continuation.ts": "sha256:cc9f63af4d0da5086a79103789e4f043783b75b4ed11c6512f044439a551a79c",
|
|
148
150
|
"gen-ts/deployment-environment.ts": "sha256:fc08cabe2e52ebb93cfe84d2019994260f71734c33d0e50e7c63e40ef5b17cef",
|
|
149
151
|
"gen-ts/deployment-source.ts": "sha256:8ccb55aaa7260eb6d19a00987d6a20a4b514e343564da13f27cd7fee8013500a",
|
|
@@ -154,7 +156,7 @@
|
|
|
154
156
|
"gen-ts/error-category-registry.ts": "sha256:7466a502c0723a77db825cdeaa9556a244201b55d9b7acbf2c098e9e84351df1",
|
|
155
157
|
"gen-ts/error-category.ts": "sha256:9bda89180c3b740c9aa8be466216592e8ca9d0d368c274333edf6ea5c45afd8e",
|
|
156
158
|
"gen-ts/error-envelope.ts": "sha256:4457309be794f9d4fc0cf62530cc2d442c007bac9ae84aff66df099cc9e40310",
|
|
157
|
-
"gen-ts/index.ts": "sha256:
|
|
159
|
+
"gen-ts/index.ts": "sha256:ef2cdd3083596e32c68a2b906810183db8f9ae8e50b34f5853251402c606adbd",
|
|
158
160
|
"gen-ts/integration-connect-result.ts": "sha256:4b10f169b6e1af364e9b418de21caa9fadbfb77b43cbff77d741cfae0b52180c",
|
|
159
161
|
"gen-ts/integration-error-details.ts": "sha256:ad7ecec9dd4533a6e86b3508886a7d69937052f52105497285797f77106bcc6f",
|
|
160
162
|
"gen-ts/integration-execute-input-rules.ts": "sha256:0da117ac9f3109462e5862d658edf0f50e4b71fdcbb675d3a9dcb08489bcadd0",
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
export declare const ContractRepositoryVersion: "0.
|
|
2
|
-
export declare const ContractPublishVersion: "0.
|
|
3
|
-
export declare const ContractPublishTag: "v0.
|
|
4
|
-
export declare const ContractSchemasDigest: "sha256:
|
|
1
|
+
export declare const ContractRepositoryVersion: "0.61.0.0";
|
|
2
|
+
export declare const ContractPublishVersion: "0.61.0";
|
|
3
|
+
export declare const ContractPublishTag: "v0.61.0";
|
|
4
|
+
export declare const ContractSchemasDigest: "sha256:c284a3092527ebffa70a2e95796cad127ab38cbdf30dbf7b13ad40f8e2c362cd";
|
|
5
5
|
export declare const ContractAiFixturesDigest: "sha256:edac31c92e146ca1c40130f2fb5649db82e24b8cd1ac758153b90612052fddb6";
|
|
6
|
-
export declare const ContractGeneratedGoDigest: "sha256:
|
|
7
|
-
export declare const ContractGeneratedTypeScriptDigest: "sha256:
|
|
6
|
+
export declare const ContractGeneratedGoDigest: "sha256:d1d612de9d0191b9612092a4f7eec24b4a4721ad7740e0f6c48aa5a554a7a0b8";
|
|
7
|
+
export declare const ContractGeneratedTypeScriptDigest: "sha256:43a874440156c76f797fcedbe0d9bdddb5d43c3265962fc2a7138e422ba590cd";
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
/* eslint-disable */
|
|
2
2
|
// Code generated by tools/gen/gen.mjs from schema/*.json. DO NOT EDIT.
|
|
3
|
-
export const ContractRepositoryVersion = "0.
|
|
4
|
-
export const ContractPublishVersion = "0.
|
|
5
|
-
export const ContractPublishTag = "v0.
|
|
6
|
-
export const ContractSchemasDigest = "sha256:
|
|
3
|
+
export const ContractRepositoryVersion = "0.61.0.0";
|
|
4
|
+
export const ContractPublishVersion = "0.61.0";
|
|
5
|
+
export const ContractPublishTag = "v0.61.0";
|
|
6
|
+
export const ContractSchemasDigest = "sha256:c284a3092527ebffa70a2e95796cad127ab38cbdf30dbf7b13ad40f8e2c362cd";
|
|
7
7
|
export const ContractAiFixturesDigest = "sha256:edac31c92e146ca1c40130f2fb5649db82e24b8cd1ac758153b90612052fddb6";
|
|
8
|
-
export const ContractGeneratedGoDigest = "sha256:
|
|
9
|
-
export const ContractGeneratedTypeScriptDigest = "sha256:
|
|
8
|
+
export const ContractGeneratedGoDigest = "sha256:d1d612de9d0191b9612092a4f7eec24b4a4721ad7740e0f6c48aa5a554a7a0b8";
|
|
9
|
+
export const ContractGeneratedTypeScriptDigest = "sha256:43a874440156c76f797fcedbe0d9bdddb5d43c3265962fc2a7138e422ba590cd";
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* IAM/SigV4 POST /v1/deployment/apps/register body. Governance derives tenant identity-provider configuration; no identity secrets are supplied. apiHostnames explicitly identifies API hosts among backendHostnames; runtime validates that subset. Omission preserves legacy .api. inference during the coordinated V2 auth migration.
|
|
3
|
+
*/
|
|
4
|
+
export interface DeploymentAppRegistration {
|
|
5
|
+
tenantId: string;
|
|
6
|
+
appId: string;
|
|
7
|
+
origin: string;
|
|
8
|
+
publicHostname?: string;
|
|
9
|
+
backendHostnames?: string[];
|
|
10
|
+
apiHostnames?: string[];
|
|
11
|
+
pathPrefix?: string;
|
|
12
|
+
environment?: 'preview' | 'production';
|
|
13
|
+
allowedDomains?: string[];
|
|
14
|
+
allowedUsers?: string[];
|
|
15
|
+
allowedGroups?: string[];
|
|
16
|
+
enabled?: boolean;
|
|
17
|
+
workloadPrincipalArn?: string;
|
|
18
|
+
}
|
package/dist/gen-ts/index.d.ts
CHANGED
|
@@ -31,6 +31,7 @@ export * from './data-grant.js';
|
|
|
31
31
|
export * from './data-source.js';
|
|
32
32
|
export * from './deploy-request.js';
|
|
33
33
|
export * from './deploy-response.js';
|
|
34
|
+
export * from './deployment-app-registration.js';
|
|
34
35
|
export * from './deployment-continuation.js';
|
|
35
36
|
export * from './deployment-environment.js';
|
|
36
37
|
export * from './deployment-source.js';
|
package/dist/gen-ts/index.js
CHANGED
|
@@ -33,6 +33,7 @@ export * from './data-grant.js';
|
|
|
33
33
|
export * from './data-source.js';
|
|
34
34
|
export * from './deploy-request.js';
|
|
35
35
|
export * from './deploy-response.js';
|
|
36
|
+
export * from './deployment-app-registration.js';
|
|
36
37
|
export * from './deployment-continuation.js';
|
|
37
38
|
export * from './deployment-environment.js';
|
|
38
39
|
export * from './deployment-source.js';
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { createHash } from 'node:crypto';
|
|
2
|
+
const slug = /^[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?$/;
|
|
3
|
+
/** Stable V2 identity label. Do not use it to recover tenant or app identity. */
|
|
4
|
+
export function deploymentLabel(org, app) {
|
|
5
|
+
if (!slug.test(org) || !slug.test(app))
|
|
6
|
+
throw new Error('org and app must be DNS labels of 1–63 characters');
|
|
7
|
+
const plain = `${org}-${app}`;
|
|
8
|
+
// Reserve double hyphens for hashed labels and -api for custom-domain API hosts.
|
|
9
|
+
if (!org.includes('-') && !plain.includes('--') && !plain.endsWith('-api') && plain.length <= 55)
|
|
10
|
+
return plain;
|
|
11
|
+
const digest = createHash('sha256').update(JSON.stringify([org, app])).digest('hex').slice(0, 32);
|
|
12
|
+
const prefix = plain.slice(0, 19).replace(/-+$/, '');
|
|
13
|
+
return `h--${prefix}-${digest}`;
|
|
14
|
+
}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
/* eslint-disable */
|
|
2
2
|
// Code generated by tools/gen/gen.mjs from schema/*.json. DO NOT EDIT.
|
|
3
3
|
|
|
4
|
-
export const ContractRepositoryVersion = "0.
|
|
5
|
-
export const ContractPublishVersion = "0.
|
|
6
|
-
export const ContractPublishTag = "v0.
|
|
7
|
-
export const ContractSchemasDigest = "sha256:
|
|
4
|
+
export const ContractRepositoryVersion = "0.61.0.0" as const;
|
|
5
|
+
export const ContractPublishVersion = "0.61.0" as const;
|
|
6
|
+
export const ContractPublishTag = "v0.61.0" as const;
|
|
7
|
+
export const ContractSchemasDigest = "sha256:c284a3092527ebffa70a2e95796cad127ab38cbdf30dbf7b13ad40f8e2c362cd" as const;
|
|
8
8
|
export const ContractAiFixturesDigest = "sha256:edac31c92e146ca1c40130f2fb5649db82e24b8cd1ac758153b90612052fddb6" as const;
|
|
9
|
-
export const ContractGeneratedGoDigest = "sha256:
|
|
10
|
-
export const ContractGeneratedTypeScriptDigest = "sha256:
|
|
9
|
+
export const ContractGeneratedGoDigest = "sha256:d1d612de9d0191b9612092a4f7eec24b4a4721ad7740e0f6c48aa5a554a7a0b8" as const;
|
|
10
|
+
export const ContractGeneratedTypeScriptDigest = "sha256:43a874440156c76f797fcedbe0d9bdddb5d43c3265962fc2a7138e422ba590cd" as const;
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/* eslint-disable */
|
|
2
|
+
// Code generated by tools/gen/gen.mjs from schema/*.json. DO NOT EDIT.
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* IAM/SigV4 POST /v1/deployment/apps/register body. Governance derives tenant identity-provider configuration; no identity secrets are supplied. apiHostnames explicitly identifies API hosts among backendHostnames; runtime validates that subset. Omission preserves legacy .api. inference during the coordinated V2 auth migration.
|
|
6
|
+
*/
|
|
7
|
+
export interface DeploymentAppRegistration {
|
|
8
|
+
tenantId: string;
|
|
9
|
+
appId: string;
|
|
10
|
+
origin: string;
|
|
11
|
+
publicHostname?: string;
|
|
12
|
+
backendHostnames?: string[];
|
|
13
|
+
apiHostnames?: string[];
|
|
14
|
+
pathPrefix?: string;
|
|
15
|
+
environment?: 'preview' | 'production';
|
|
16
|
+
allowedDomains?: string[];
|
|
17
|
+
allowedUsers?: string[];
|
|
18
|
+
allowedGroups?: string[];
|
|
19
|
+
enabled?: boolean;
|
|
20
|
+
workloadPrincipalArn?: string;
|
|
21
|
+
}
|
package/gen-ts/index.ts
CHANGED
|
@@ -34,6 +34,7 @@ export * from './data-grant.js';
|
|
|
34
34
|
export * from './data-source.js';
|
|
35
35
|
export * from './deploy-request.js';
|
|
36
36
|
export * from './deploy-response.js';
|
|
37
|
+
export * from './deployment-app-registration.js';
|
|
37
38
|
export * from './deployment-continuation.js';
|
|
38
39
|
export * from './deployment-environment.js';
|
|
39
40
|
export * from './deployment-source.js';
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@fourier-labs/harbour-contracts",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.61.0",
|
|
4
4
|
"description": "Single source of truth for every data shape that crosses a boundary between Isomorph components.",
|
|
5
5
|
"license": "UNLICENSED",
|
|
6
6
|
"private": false,
|
|
@@ -23,6 +23,10 @@
|
|
|
23
23
|
"types": "./dist/gen-ts/index.d.ts",
|
|
24
24
|
"default": "./dist/gen-ts/index.js"
|
|
25
25
|
},
|
|
26
|
+
"./naming": {
|
|
27
|
+
"types": "./dist/naming/index.d.ts",
|
|
28
|
+
"default": "./dist/naming/index.js"
|
|
29
|
+
},
|
|
26
30
|
"./resolver": {
|
|
27
31
|
"types": "./dist/resolver/index.d.ts",
|
|
28
32
|
"default": "./dist/resolver/index.js"
|
|
@@ -31,7 +35,7 @@
|
|
|
31
35
|
"scripts": {
|
|
32
36
|
"gen": "node tools/gen/gen.mjs",
|
|
33
37
|
"build": "tsc -p tsconfig.json",
|
|
34
|
-
"test": "node --experimental-strip-types --test tools/gen/*.test.mjs resolver/*.test.mjs",
|
|
38
|
+
"test": "node --experimental-strip-types --test tools/gen/*.test.mjs resolver/*.test.mjs naming/*.test.mjs",
|
|
35
39
|
"verify": "node tools/release/verify-release.mjs && node tools/gen/gen.mjs && { [ -z \"$(git status --porcelain -- gen-ts gen-go contract-release.json)\" ] || { echo 'STALE: generated code or release manifest out of date or uncommitted — run make gen and commit'; exit 1; }; }"
|
|
36
40
|
},
|
|
37
41
|
"devDependencies": {
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "http://json-schema.org/draft-07/schema#",
|
|
3
|
+
"$id": "https://contracts.harbour.dev/deployment-app-registration.schema.json",
|
|
4
|
+
"title": "DeploymentAppRegistration",
|
|
5
|
+
"description": "IAM/SigV4 POST /v1/deployment/apps/register body. Governance derives tenant identity-provider configuration; no identity secrets are supplied. apiHostnames explicitly identifies API hosts among backendHostnames; runtime validates that subset. Omission preserves legacy .api. inference during the coordinated V2 auth migration.",
|
|
6
|
+
"type": "object",
|
|
7
|
+
"additionalProperties": false,
|
|
8
|
+
"required": ["tenantId", "appId", "origin"],
|
|
9
|
+
"properties": {
|
|
10
|
+
"tenantId": {"type": "string", "minLength": 1},
|
|
11
|
+
"appId": {"type": "string", "minLength": 1},
|
|
12
|
+
"origin": {"type": "string", "format": "uri"},
|
|
13
|
+
"publicHostname": {"type": "string", "format": "hostname"},
|
|
14
|
+
"backendHostnames": {"type": "array", "uniqueItems": true, "items": {"type": "string", "format": "hostname"}},
|
|
15
|
+
"apiHostnames": {"type": "array", "uniqueItems": true, "items": {"type": "string", "format": "hostname"}},
|
|
16
|
+
"pathPrefix": {"type": "string", "pattern": "^/"},
|
|
17
|
+
"environment": {"type": "string", "enum": ["preview", "production"]},
|
|
18
|
+
"allowedDomains": {"type": "array", "items": {"type": "string"}},
|
|
19
|
+
"allowedUsers": {"type": "array", "items": {"type": "string"}},
|
|
20
|
+
"allowedGroups": {"type": "array", "items": {"type": "string"}},
|
|
21
|
+
"enabled": {"type": "boolean"},
|
|
22
|
+
"workloadPrincipalArn": {"type": "string", "pattern": "^arn:aws:(iam|sts)::[0-9]+:"}
|
|
23
|
+
}
|
|
24
|
+
}
|