@fourier-labs/harbour-contracts 0.76.0 → 0.77.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/README.md CHANGED
@@ -43,7 +43,7 @@ exist here first.
43
43
  | `saas-connection.schema.json`, `data-grant-v2.schema.json` | Tenant SaaS connection record (one installation and channel map per tenant and provider; IT's optional `oauthClient`, `userModeApproval`, `directMessages`, `externalRecipients` — ADR 0018; a Basecamp connection's pinned `account` and project ids in `channels` — ADR 0022) and the additive `harbour.data-grant/2.0` grant record with structured resources and provisioning lease/cleanup (status machine generated; legacy `data-grant` untouched) | Dev kit §5 |
44
44
  | `kit-bundle-manifest.schema.json`, `kit-lock.schema.json` | Published kit bundle identity (SDK tarball digest plus optional `sdk.version` and https `sdk.url` download location) and the committed `.isomorph/kit.lock.json` the CodeBuild SDK-vendoring gate compares against | Dev kit §3 |
45
45
  | `deploy-response.schema.json` | 202 Accepted body for `POST /v1/tenants/{tenant}/apps/{app}/deployments`, returned only after the authoritative QUEUED version exists and its SQS message is accepted | — |
46
- | `deployment-source.schema.json` | Credential-free GitHub source in the `DeployRequest` body; credentials are resolved internally by MaterializeSource | — |
46
+ | `deployment-source.schema.json` | Credential-free source in the `DeployRequest` body: `provider` is `github` or `gitlab`, `repositoryUrl` is shape-only and the deployment control plane checks the host against the tenant's source connection (ADR 0023); credentials are resolved internally by MaterializeSource | — |
47
47
  | `deployment-environment.schema.json` | Public environment accepted by the preview APIs (`preview` only; production is reachable only through promotion) | — |
48
48
  | `api-error-response.schema.json` | Safe JSON error body for Deploy/Status Lambda 4xx/5xx responses; distinct from the internal `ErrorEnvelope` | — |
49
49
  | `deployment-status-request.schema.json` | Validated path parameters for `GET /v1/tenants/{tenant}/apps/{app}/deployments/{versionId}` | — |
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "schema": "harbour.contract-release/1.0",
3
- "repositoryVersion": "0.76.0.0",
4
- "publishVersion": "0.76.0",
5
- "publishTag": "v0.76.0",
6
- "schemasDigest": "sha256:20ed0df1c63b7aec22d74c3582b1e6c5d36a974005bfe656f03f8f746b371fa7",
3
+ "repositoryVersion": "0.77.0.0",
4
+ "publishVersion": "0.77.0",
5
+ "publishTag": "v0.77.0",
6
+ "schemasDigest": "sha256:4b1970124058b38db22026ca1f6f6c74d9e32d6753dac12a5452ba090d19c667",
7
7
  "aiFixturesDigest": "sha256:edac31c92e146ca1c40130f2fb5649db82e24b8cd1ac758153b90612052fddb6",
8
- "generatedGoDigest": "sha256:db5f27b48a5e6b3706ac0173ebe37ec26deed375be46646b592da35a3aebcce4",
9
- "generatedTypeScriptDigest": "sha256:9467bd533c557df0b263789b8585f0201abd9f536506ec28400e245be18dae42",
8
+ "generatedGoDigest": "sha256:e61b74f464a07c98fcb02dfa7d62af79cc4634455ade7195602ec0632af9f9ba",
9
+ "generatedTypeScriptDigest": "sha256:442a4b31bff9288ca5a2dd4e9fb0eb74945c7abbe6b8a7eede8694ad9c44f1fd",
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)"
@@ -39,13 +39,13 @@
39
39
  "schema/data-grant-v2.schema.json": "sha256:b843703ff1a8091c726fee3a5ce07e06dfed684326318163ba7dd070273aada3",
40
40
  "schema/data-grant.schema.json": "sha256:e640553831ecc1c01cc9a37fe388b84d0ffeaa0d0050e63712b48f65fa437c8a",
41
41
  "schema/data-source.schema.json": "sha256:46ef4ace5fce612fce055813bf4f99956423b46c929993fbbc5dfec497087bad",
42
- "schema/deploy-request.schema.json": "sha256:32531e21983cdfeec511f8b4cddd4dad6530cd90e4e9fe147225d78d138b6198",
42
+ "schema/deploy-request.schema.json": "sha256:c978406c273fa430db262888f0a8646b14e3057f64b0633780fcd6cfa646bc67",
43
43
  "schema/deploy-response.schema.json": "sha256:09064948abdbba7022738285d802ed44648a16ddc2a5b8c2eeb170ae19a66aeb",
44
44
  "schema/deployment-app-registration.schema.json": "sha256:eb705c38466ebd97cb76c1ce7a6177d75c2f10381df75976b40d47eeb8dd5712",
45
45
  "schema/deployment-continuation.schema.json": "sha256:55b6945439f2c91cd851dfe4bc9484e67a64091b7763b2d8267354b4a8bfae8c",
46
46
  "schema/deployment-environment.schema.json": "sha256:35b26cae07da9ee375a842b5e87c4570c8eca06775e9fd6dd46eb9eb8aa0df6c",
47
47
  "schema/deployment-preview-retirement.schema.json": "sha256:ccf6b971b7853ca98530272f280fe62cd3aab5425b10b81ae6b717cc949e014f",
48
- "schema/deployment-source.schema.json": "sha256:256988b1efbfc90bd0e1ae31a2c5d69b20ef1e4471dc24c9f9aa759278270fbe",
48
+ "schema/deployment-source.schema.json": "sha256:143c5ef3afeec2232707671c19ffe7d5b9c2f0e05a95ca87e675fbc3cd39c8b5",
49
49
  "schema/deployment-status-failure.schema.json": "sha256:7cc021d53a07c63b66eb48146d33e8875b64faf77ee927b235795469eb9a1559",
50
50
  "schema/deployment-status-request.schema.json": "sha256:1f9f87adc947a252b53b61f71ae17f8c1b8fbc1166f31301a043d11ac257dc66",
51
51
  "schema/deployment-status-response.schema.json": "sha256:d65a7d320c50dcc0985eaf59906a25ab05650efdaa76df0db6b21f9649969070",
@@ -113,7 +113,7 @@
113
113
  "gen-go/integration_execute_input_rules_test.go": "sha256:607de6367fff4ab8cdfba2c68ed0adedd26f0d56fecc409b953d8d5acb885b58",
114
114
  "gen-go/integration_operations.go": "sha256:05824e16c898c91952a374929082dd06e80ff3a271e3dfeff49beba7e459bf20",
115
115
  "gen-go/schema_documents.go": "sha256:c19c0d540f602ee997a84b90e20702d9bc63ed7d27aec267e76c04655fc182e0",
116
- "gen-go/types.go": "sha256:d8bfe22533a1c3bad12b868068d43397dd2f1a9008521c132f13b3d4b8ab5dd4",
116
+ "gen-go/types.go": "sha256:13328edd1db9c683b732daca4e1691b17934002f1f31ee567a577fb7af3e0c6d",
117
117
  "gen-go/version_state.go": "sha256:4ef8abb126414c0025cf2c59bc9c79a74ef4a2ff89e8f316cbf05acc872371c1"
118
118
  },
119
119
  "generatedTypeScript": {
@@ -147,13 +147,13 @@
147
147
  "gen-ts/data-grant-v2.ts": "sha256:311bee6359ab57a01d8652c432c3616d2c441e708a29f079d83432cf83e2a940",
148
148
  "gen-ts/data-grant.ts": "sha256:2358579d8aa1e57b01a6f2b0eacce5531e7f21ef226404c9809925365e0d6155",
149
149
  "gen-ts/data-source.ts": "sha256:f30d4c14c15afbb9530d30af9235844198765984ce1579fa25961d7f07bcfb1f",
150
- "gen-ts/deploy-request.ts": "sha256:0214faa8be6680f0bfc117d5ce67c1a59fcc18bd0ea4bc840e03e7d051fa9ab6",
150
+ "gen-ts/deploy-request.ts": "sha256:913245577a95354849d3a8cb43fbaedbf895efe7b653c8502d25edfa22b7a864",
151
151
  "gen-ts/deploy-response.ts": "sha256:364d9f1acf32e491498237cdd3f402d5f8e102f208db7748034f4ec68c6a6137",
152
152
  "gen-ts/deployment-app-registration.ts": "sha256:642db3a3f796e5d7089cdb834991277ab1aac5bff37cd5cab42aa2f1c116f0be",
153
153
  "gen-ts/deployment-continuation.ts": "sha256:cc9f63af4d0da5086a79103789e4f043783b75b4ed11c6512f044439a551a79c",
154
154
  "gen-ts/deployment-environment.ts": "sha256:fc08cabe2e52ebb93cfe84d2019994260f71734c33d0e50e7c63e40ef5b17cef",
155
155
  "gen-ts/deployment-preview-retirement.ts": "sha256:309421d08daf0ade163b6457ed0e5410ec6573c40a59423a6cce14780d9c38db",
156
- "gen-ts/deployment-source.ts": "sha256:8ccb55aaa7260eb6d19a00987d6a20a4b514e343564da13f27cd7fee8013500a",
156
+ "gen-ts/deployment-source.ts": "sha256:eb98eff1d03cf5a54de284e365c8966f8136db93e8ab8e2cf1d4e7f1e737ffc0",
157
157
  "gen-ts/deployment-status-failure.ts": "sha256:6da2e6eb2f708efa51d416a1ec50f71ea7967cf9be9f93e7ce2e4760dae2cfe3",
158
158
  "gen-ts/deployment-status-request.ts": "sha256:7ddccd07ab9f6d0821903a291ab35f903bb055727e03a058b99165ec048f6483",
159
159
  "gen-ts/deployment-status-response.ts": "sha256:4f4ba74edf5f5ec743be91656c38cf5eeb85d7573fc357d6144733a32427ffa7",
@@ -1,7 +1,7 @@
1
- export declare const ContractRepositoryVersion: "0.76.0.0";
2
- export declare const ContractPublishVersion: "0.76.0";
3
- export declare const ContractPublishTag: "v0.76.0";
4
- export declare const ContractSchemasDigest: "sha256:20ed0df1c63b7aec22d74c3582b1e6c5d36a974005bfe656f03f8f746b371fa7";
1
+ export declare const ContractRepositoryVersion: "0.77.0.0";
2
+ export declare const ContractPublishVersion: "0.77.0";
3
+ export declare const ContractPublishTag: "v0.77.0";
4
+ export declare const ContractSchemasDigest: "sha256:4b1970124058b38db22026ca1f6f6c74d9e32d6753dac12a5452ba090d19c667";
5
5
  export declare const ContractAiFixturesDigest: "sha256:edac31c92e146ca1c40130f2fb5649db82e24b8cd1ac758153b90612052fddb6";
6
- export declare const ContractGeneratedGoDigest: "sha256:db5f27b48a5e6b3706ac0173ebe37ec26deed375be46646b592da35a3aebcce4";
7
- export declare const ContractGeneratedTypeScriptDigest: "sha256:9467bd533c557df0b263789b8585f0201abd9f536506ec28400e245be18dae42";
6
+ export declare const ContractGeneratedGoDigest: "sha256:e61b74f464a07c98fcb02dfa7d62af79cc4634455ade7195602ec0632af9f9ba";
7
+ export declare const ContractGeneratedTypeScriptDigest: "sha256:442a4b31bff9288ca5a2dd4e9fb0eb74945c7abbe6b8a7eede8694ad9c44f1fd";
@@ -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.76.0.0";
4
- export const ContractPublishVersion = "0.76.0";
5
- export const ContractPublishTag = "v0.76.0";
6
- export const ContractSchemasDigest = "sha256:20ed0df1c63b7aec22d74c3582b1e6c5d36a974005bfe656f03f8f746b371fa7";
3
+ export const ContractRepositoryVersion = "0.77.0.0";
4
+ export const ContractPublishVersion = "0.77.0";
5
+ export const ContractPublishTag = "v0.77.0";
6
+ export const ContractSchemasDigest = "sha256:4b1970124058b38db22026ca1f6f6c74d9e32d6753dac12a5452ba090d19c667";
7
7
  export const ContractAiFixturesDigest = "sha256:edac31c92e146ca1c40130f2fb5649db82e24b8cd1ac758153b90612052fddb6";
8
- export const ContractGeneratedGoDigest = "sha256:db5f27b48a5e6b3706ac0173ebe37ec26deed375be46646b592da35a3aebcce4";
9
- export const ContractGeneratedTypeScriptDigest = "sha256:9467bd533c557df0b263789b8585f0201abd9f536506ec28400e245be18dae42";
8
+ export const ContractGeneratedGoDigest = "sha256:e61b74f464a07c98fcb02dfa7d62af79cc4634455ade7195602ec0632af9f9ba";
9
+ export const ContractGeneratedTypeScriptDigest = "sha256:442a4b31bff9288ca5a2dd4e9fb0eb74945c7abbe6b8a7eede8694ad9c44f1fd";
@@ -65,11 +65,11 @@ export interface DeployRequest {
65
65
  }
66
66
  export interface DeployRequestSource {
67
67
  /**
68
- * Source provider. The preview MVP accepts only github.
68
+ * Source provider. The tenant's source connection names the provider in use; the deployment control plane resolves credentials for it.
69
69
  */
70
- provider: 'github';
70
+ provider: 'github' | 'gitlab';
71
71
  /**
72
- * Credential-free HTTPS GitHub repository URL.
72
+ * Credential-free HTTPS repository URL: a host and a path, never userinfo, a query string or a fragment. The deployment control plane checks the host against the tenant's source connection.
73
73
  */
74
74
  repositoryUrl: string;
75
75
  }
@@ -1,13 +1,13 @@
1
1
  /**
2
- * Credential-free GitHub source supplied in the DeployRequest body. Credentials are resolved internally by MaterializeSource and never cross the API boundary.
2
+ * Credential-free source repository supplied in the DeployRequest body. Credentials are resolved internally by MaterializeSource and never cross the API boundary.
3
3
  */
4
4
  export interface DeploymentSource {
5
5
  /**
6
- * Source provider. The preview MVP accepts only GitHub.
6
+ * Source provider. The tenant's source connection names the provider in use; the deployment control plane resolves credentials for it.
7
7
  */
8
- provider: 'github';
8
+ provider: 'github' | 'gitlab';
9
9
  /**
10
- * Credential-free HTTPS GitHub repository URL. Query strings, fragments, embedded credentials and non-github.com hosts are rejected.
10
+ * Credential-free HTTPS repository URL: a host and a path, never userinfo, a query string or a fragment. The schema checks only the shape; the deployment control plane checks the host against the tenant's source connection.
11
11
  */
12
12
  repositoryUrl: string;
13
13
  }
@@ -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.76.0.0" as const;
5
- export const ContractPublishVersion = "0.76.0" as const;
6
- export const ContractPublishTag = "v0.76.0" as const;
7
- export const ContractSchemasDigest = "sha256:20ed0df1c63b7aec22d74c3582b1e6c5d36a974005bfe656f03f8f746b371fa7" as const;
4
+ export const ContractRepositoryVersion = "0.77.0.0" as const;
5
+ export const ContractPublishVersion = "0.77.0" as const;
6
+ export const ContractPublishTag = "v0.77.0" as const;
7
+ export const ContractSchemasDigest = "sha256:4b1970124058b38db22026ca1f6f6c74d9e32d6753dac12a5452ba090d19c667" as const;
8
8
  export const ContractAiFixturesDigest = "sha256:edac31c92e146ca1c40130f2fb5649db82e24b8cd1ac758153b90612052fddb6" as const;
9
- export const ContractGeneratedGoDigest = "sha256:db5f27b48a5e6b3706ac0173ebe37ec26deed375be46646b592da35a3aebcce4" as const;
10
- export const ContractGeneratedTypeScriptDigest = "sha256:9467bd533c557df0b263789b8585f0201abd9f536506ec28400e245be18dae42" as const;
9
+ export const ContractGeneratedGoDigest = "sha256:e61b74f464a07c98fcb02dfa7d62af79cc4634455ade7195602ec0632af9f9ba" as const;
10
+ export const ContractGeneratedTypeScriptDigest = "sha256:442a4b31bff9288ca5a2dd4e9fb0eb74945c7abbe6b8a7eede8694ad9c44f1fd" as const;
@@ -69,11 +69,11 @@ export interface DeployRequest {
69
69
  }
70
70
  export interface DeployRequestSource {
71
71
  /**
72
- * Source provider. The preview MVP accepts only github.
72
+ * Source provider. The tenant's source connection names the provider in use; the deployment control plane resolves credentials for it.
73
73
  */
74
- provider: 'github';
74
+ provider: 'github' | 'gitlab';
75
75
  /**
76
- * Credential-free HTTPS GitHub repository URL.
76
+ * Credential-free HTTPS repository URL: a host and a path, never userinfo, a query string or a fragment. The deployment control plane checks the host against the tenant's source connection.
77
77
  */
78
78
  repositoryUrl: string;
79
79
  }
@@ -2,15 +2,15 @@
2
2
  // Code generated by tools/gen/gen.mjs from schema/*.json. DO NOT EDIT.
3
3
 
4
4
  /**
5
- * Credential-free GitHub source supplied in the DeployRequest body. Credentials are resolved internally by MaterializeSource and never cross the API boundary.
5
+ * Credential-free source repository supplied in the DeployRequest body. Credentials are resolved internally by MaterializeSource and never cross the API boundary.
6
6
  */
7
7
  export interface DeploymentSource {
8
8
  /**
9
- * Source provider. The preview MVP accepts only GitHub.
9
+ * Source provider. The tenant's source connection names the provider in use; the deployment control plane resolves credentials for it.
10
10
  */
11
- provider: 'github';
11
+ provider: 'github' | 'gitlab';
12
12
  /**
13
- * Credential-free HTTPS GitHub repository URL. Query strings, fragments, embedded credentials and non-github.com hosts are rejected.
13
+ * Credential-free HTTPS repository URL: a host and a path, never userinfo, a query string or a fragment. The schema checks only the shape; the deployment control plane checks the host against the tenant's source connection.
14
14
  */
15
15
  repositoryUrl: string;
16
16
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fourier-labs/harbour-contracts",
3
- "version": "0.76.0",
3
+ "version": "0.77.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,
@@ -148,15 +148,15 @@
148
148
  "properties": {
149
149
  "provider": {
150
150
  "type": "string",
151
- "enum": ["github"],
152
- "description": "Source provider. The preview MVP accepts only github."
151
+ "enum": ["github", "gitlab"],
152
+ "description": "Source provider. The tenant's source connection names the provider in use; the deployment control plane resolves credentials for it."
153
153
  },
154
154
  "repositoryUrl": {
155
155
  "type": "string",
156
156
  "minLength": 20,
157
157
  "maxLength": 300,
158
- "pattern": "^https://github\\.com/[A-Za-z0-9_.-]+/[A-Za-z0-9_.-]+(?:\\.git)?/?$",
159
- "description": "Credential-free HTTPS GitHub repository URL."
158
+ "pattern": "^https://[^/?#@\\s]+/[^?#\\s]+$",
159
+ "description": "Credential-free HTTPS repository URL: a host and a path, never userinfo, a query string or a fragment. The deployment control plane checks the host against the tenant's source connection."
160
160
  }
161
161
  }
162
162
  }
@@ -2,28 +2,32 @@
2
2
  "$schema": "http://json-schema.org/draft-07/schema#",
3
3
  "$id": "https://schemas.harbour.dev/deployment-source.schema.json",
4
4
  "title": "DeploymentSource",
5
- "description": "Credential-free GitHub source supplied in the DeployRequest body. Credentials are resolved internally by MaterializeSource and never cross the API boundary.",
5
+ "description": "Credential-free source repository supplied in the DeployRequest body. Credentials are resolved internally by MaterializeSource and never cross the API boundary.",
6
6
  "type": "object",
7
7
  "additionalProperties": false,
8
8
  "required": ["provider", "repositoryUrl"],
9
9
  "properties": {
10
10
  "provider": {
11
11
  "type": "string",
12
- "enum": ["github"],
13
- "description": "Source provider. The preview MVP accepts only GitHub."
12
+ "enum": ["github", "gitlab"],
13
+ "description": "Source provider. The tenant's source connection names the provider in use; the deployment control plane resolves credentials for it."
14
14
  },
15
15
  "repositoryUrl": {
16
16
  "type": "string",
17
17
  "minLength": 20,
18
18
  "maxLength": 300,
19
- "pattern": "^https://github\\.com/[A-Za-z0-9_.-]+/[A-Za-z0-9_.-]+(?:\\.git)?/?$",
20
- "description": "Credential-free HTTPS GitHub repository URL. Query strings, fragments, embedded credentials and non-github.com hosts are rejected."
19
+ "pattern": "^https://[^/?#@\\s]+/[^?#\\s]+$",
20
+ "description": "Credential-free HTTPS repository URL: a host and a path, never userinfo, a query string or a fragment. The schema checks only the shape; the deployment control plane checks the host against the tenant's source connection."
21
21
  }
22
22
  },
23
23
  "examples": [
24
24
  {
25
25
  "provider": "github",
26
26
  "repositoryUrl": "https://github.com/Fourier-Labs-AI/focus-list"
27
+ },
28
+ {
29
+ "provider": "gitlab",
30
+ "repositoryUrl": "https://gitlab.com/fourier-labs/apps/focus-list"
27
31
  }
28
32
  ]
29
33
  }