@astrale-os/adapter-cloudflare 0.5.0-beta.88 → 0.5.0-beta.89

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
@@ -1,5 +1,19 @@
1
1
  # Changelog
2
2
 
3
+ ## [0.5.0-beta.89](https://github.com/astrale-os/sdk/compare/adapter-cloudflare-v0.5.0-beta.88...adapter-cloudflare-v0.5.0-beta.89) (2026-08-30)
4
+
5
+
6
+ ### Features
7
+
8
+ * support trusted Domain token-exchange authority ([#352](https://github.com/astrale-os/sdk/issues/352)) ([8bec391](https://github.com/astrale-os/sdk/commit/8bec3915afad8aef6fab66d6e8906ea89ca8ad39))
9
+
10
+
11
+ ### Dependencies
12
+
13
+ * The following workspace dependencies were updated
14
+ * dependencies
15
+ * @astrale-os/sdk bumped to 0.5.0-beta.86
16
+
3
17
  ## [0.5.0-beta.88](https://github.com/astrale-os/sdk/compare/adapter-cloudflare-v0.5.0-beta.87...adapter-cloudflare-v0.5.0-beta.88) (2026-08-30)
4
18
 
5
19
 
@@ -1,4 +1,5 @@
1
1
  import type { Build } from '@astrale-os/sdk/deployment/build';
2
+ import type { ExchangeOptions } from '@astrale-os/sdk/execution';
2
3
  export interface ExecutionCodegenOptions {
3
4
  readonly origin: string;
4
5
  readonly runtimeSpecifier: string;
@@ -7,6 +8,7 @@ export interface ExecutionCodegenOptions {
7
8
  readonly maximumRequestBytes?: number;
8
9
  readonly invocationTimeoutMs?: number;
9
10
  readonly providerAssignedWorker?: string;
11
+ readonly tokenExchange?: ExchangeOptions | false;
10
12
  readonly router?: {
11
13
  readonly binding: string;
12
14
  readonly hostSuffix: string;
@@ -46,6 +46,7 @@ ${frontend} load: async () => ({
46
46
  ${options.maximumRequestBytes === undefined ? '' : `maximumRequestBytes: ${options.maximumRequestBytes},`}
47
47
  ${options.invocationTimeoutMs === undefined ? '' : `invocationTimeoutMs: ${options.invocationTimeoutMs},`}
48
48
  ${options.providerAssignedWorker === undefined ? '' : `providerAssignedWorker: ${JSON.stringify(options.providerAssignedWorker)},`}
49
+ ${options.tokenExchange === undefined ? '' : `tokenExchange: ${JSON.stringify(options.tokenExchange)} as const,`}
49
50
  selfBinding: (env) => env.SELF,${routeSubrequest}
50
51
  })
51
52
  `;
@@ -23,6 +23,9 @@ export async function prepareExecution(input) {
23
23
  build: input.context.build,
24
24
  ...(maximumRequestBytes === undefined ? {} : { maximumRequestBytes }),
25
25
  ...(invocationTimeoutMs === undefined ? {} : { invocationTimeoutMs }),
26
+ ...(input.params.tokenExchange === undefined
27
+ ? {}
28
+ : { tokenExchange: input.params.tokenExchange }),
26
29
  ...(input.configuredIssuer === undefined && input.direct
27
30
  ? { providerAssignedWorker: input.name }
28
31
  : {}),
package/dist/params.d.ts CHANGED
@@ -1,3 +1,4 @@
1
+ import type { ExchangeOptions } from '@astrale-os/sdk/execution';
1
2
  /**
2
3
  * `CloudflareParams` — the provider-typed config for the Cloudflare adapter.
3
4
  *
@@ -62,6 +63,12 @@ export interface CloudflareParams {
62
63
  * long provider orchestration while retaining a finite application budget.
63
64
  */
64
65
  readonly invocationTimeoutMs?: number;
66
+ /**
67
+ * Configure the Domain issuer's token exchange. Ordinary Domains retain the
68
+ * authenticated caller by default. Trusted platform Domains may deliberately
69
+ * select `grantMode: 'union'` to add their installed-Domain principal.
70
+ */
71
+ readonly tokenExchange?: ExchangeOptions | false;
65
72
  /**
66
73
  * Escape hatch: raw wrangler config deep-merged over the generated base. Use
67
74
  * it to declare extra bindings the adapter has no typed field for — KV, R2,
@@ -1,6 +1,6 @@
1
1
  import type { JsonWebKey } from '@astrale-os/sdk/auth';
2
2
  import type { BuildMaterial, GeneratedBuildMaterial } from '@astrale-os/sdk/deployment/build/material';
3
- import type { ExecutionContext } from '@astrale-os/sdk/execution';
3
+ import type { ExchangeOptions, ExecutionContext } from '@astrale-os/sdk/execution';
4
4
  import type { Runtime } from '@astrale-os/sdk/runtime';
5
5
  export interface Fetcher {
6
6
  fetch(request: Request): Response | Promise<Response>;
@@ -29,6 +29,7 @@ export interface CloudflareWorkerConfig<RuntimeValue extends Runtime, Bindings e
29
29
  readonly routeSubrequest?: (url: URL, bindings: Bindings) => Fetcher | null | undefined;
30
30
  readonly invocationTimeoutMs?: number;
31
31
  readonly maximumRequestBytes?: number;
32
+ readonly tokenExchange?: ExchangeOptions | false;
32
33
  }
33
34
  export interface CloudflareWorkerSource<RuntimeValue extends Runtime, Material = BuildMaterial> {
34
35
  readonly runtime: RuntimeValue;
@@ -44,6 +44,9 @@ function createCloudflareWorkerEntry(restore) {
44
44
  ...(new URL(environment.issuer).protocol === 'http:'
45
45
  ? { allowInsecureHttp: true }
46
46
  : {}),
47
+ ...(config.tokenExchange === undefined
48
+ ? {}
49
+ : { tokenExchange: config.tokenExchange }),
47
50
  });
48
51
  },
49
52
  server: {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@astrale-os/adapter-cloudflare",
3
- "version": "0.5.0-beta.88",
3
+ "version": "0.5.0-beta.89",
4
4
  "description": "Deploy an Astrale application through Cloudflare Workers",
5
5
  "keywords": [
6
6
  "adapter",
@@ -53,7 +53,7 @@
53
53
  "registry": "https://registry.npmjs.org/"
54
54
  },
55
55
  "dependencies": {
56
- "@astrale-os/sdk": "0.5.0-beta.85",
56
+ "@astrale-os/sdk": "0.5.0-beta.86",
57
57
  "@noble/hashes": "2.3.0",
58
58
  "hono": "^4.6.20",
59
59
  "jose": "^6.1.3",