@distilled.cloud/fly-io 1.0.0-rc.6 → 1.0.0-rc.7

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/lib/index.d.ts CHANGED
@@ -32,7 +32,7 @@
32
32
  export * from "./credentials.ts";
33
33
  export * from "./errors.ts";
34
34
  export * as T from "./traits.ts";
35
- export { FlyIoProtocol, FlyApiProtocol, FlyGraphqlProtocol, SpritesProtocol, type FlyIoOpError, type FlyIoOpContext, type SpritesOpError, type SpritesOpContext, } from "./protocol.ts";
35
+ export { FlyIoProtocol, FlyApiProtocol, FlyGraphqlProtocol, SpritesProtocol, MachineIdentity, type FlyIoOpError, type FlyIoOpContext, type SpritesOpError, type SpritesOpContext, } from "./protocol.ts";
36
36
  export * as Retry from "./retry.ts";
37
37
  export * as Pagination from "./pagination.ts";
38
38
  export * from "./services/index.ts";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,cAAc,kBAAkB,CAAC;AACjC,cAAc,aAAa,CAAC;AAC5B,OAAO,KAAK,CAAC,MAAM,aAAa,CAAC;AACjC,OAAO,EACL,aAAa,EACb,cAAc,EACd,kBAAkB,EAClB,eAAe,EACf,KAAK,YAAY,EACjB,KAAK,cAAc,EACnB,KAAK,cAAc,EACnB,KAAK,gBAAgB,GACtB,MAAM,eAAe,CAAC;AACvB,OAAO,KAAK,KAAK,MAAM,YAAY,CAAC;AACpC,OAAO,KAAK,UAAU,MAAM,iBAAiB,CAAC;AAC9C,cAAc,qBAAqB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,cAAc,kBAAkB,CAAC;AACjC,cAAc,aAAa,CAAC;AAC5B,OAAO,KAAK,CAAC,MAAM,aAAa,CAAC;AACjC,OAAO,EACL,aAAa,EACb,cAAc,EACd,kBAAkB,EAClB,eAAe,EACf,eAAe,EACf,KAAK,YAAY,EACjB,KAAK,cAAc,EACnB,KAAK,cAAc,EACnB,KAAK,gBAAgB,GACtB,MAAM,eAAe,CAAC;AACvB,OAAO,KAAK,KAAK,MAAM,YAAY,CAAC;AACpC,OAAO,KAAK,UAAU,MAAM,iBAAiB,CAAC;AAC9C,cAAc,qBAAqB,CAAC"}
package/lib/index.js CHANGED
@@ -32,7 +32,7 @@
32
32
  export * from "./credentials.js";
33
33
  export * from "./errors.js";
34
34
  export * as T from "./traits.js";
35
- export { FlyIoProtocol, FlyApiProtocol, FlyGraphqlProtocol, SpritesProtocol, } from "./protocol.js";
35
+ export { FlyIoProtocol, FlyApiProtocol, FlyGraphqlProtocol, SpritesProtocol, MachineIdentity, } from "./protocol.js";
36
36
  export * as Retry from "./retry.js";
37
37
  export * as Pagination from "./pagination.js";
38
38
  export * from "./services/index.js";
package/lib/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,cAAc,kBAAkB,CAAC;AACjC,cAAc,aAAa,CAAC;AAC5B,OAAO,KAAK,CAAC,MAAM,aAAa,CAAC;AACjC,OAAO,EACL,aAAa,EACb,cAAc,EACd,kBAAkB,EAClB,eAAe,GAKhB,MAAM,eAAe,CAAC;AACvB,OAAO,KAAK,KAAK,MAAM,YAAY,CAAC;AACpC,OAAO,KAAK,UAAU,MAAM,iBAAiB,CAAC;AAC9C,cAAc,qBAAqB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,cAAc,kBAAkB,CAAC;AACjC,cAAc,aAAa,CAAC;AAC5B,OAAO,KAAK,CAAC,MAAM,aAAa,CAAC;AACjC,OAAO,EACL,aAAa,EACb,cAAc,EACd,kBAAkB,EAClB,eAAe,EACf,eAAe,GAKhB,MAAM,eAAe,CAAC;AACvB,OAAO,KAAK,KAAK,MAAM,YAAY,CAAC;AACpC,OAAO,KAAK,UAAU,MAAM,iBAAiB,CAAC;AAC9C,cAAc,qBAAqB,CAAC"}
package/lib/protocol.d.ts CHANGED
@@ -1,3 +1,24 @@
1
+ /**
2
+ * Fly.io protocols — Machines REST, UI-EX REST (MPG), GraphQL add-ons, and
3
+ * Sprites REST.
4
+ *
5
+ * Machines (`FlyIoProtocol`) is a plain bearer-token JSON API at
6
+ * `api.machines.dev/v1`. MPG (`FlyApiProtocol`) is the same token against
7
+ * `https://api.fly.io`. GraphQL add-ons (`FlyGraphqlProtocol`) POST
8
+ * `{ query, operationName, variables }` to `https://api.fly.io/graphql`.
9
+ *
10
+ * Sprites (`SpritesProtocol`) also resolve `FLY_API_TOKEN` (same
11
+ * {@link Credentials} as Machines). Sprite CRUD rejects a Fly macaroon as
12
+ * Bearer, so the protocol mints a Sprites bearer once:
13
+ *
14
+ * POST https://api.sprites.dev/v1/organizations/{org}/tokens
15
+ * Authorization: FlyV1 {FLY_API_TOKEN}
16
+ *
17
+ * Org slug comes from Machines `GET /tokens/current` (GraphQL fallback).
18
+ * The minted token is cached process-wide, then sent as
19
+ * `Authorization: Bearer` on sprite ops. There is no `SPRITES_TOKEN`.
20
+ */
21
+ import * as Context from "effect/Context";
1
22
  import * as Layer from "effect/Layer";
2
23
  import * as HttpClient from "effect/unstable/http/HttpClient";
3
24
  import type * as HttpClientError from "effect/unstable/http/HttpClientError";
@@ -20,10 +41,20 @@ export type FlyIoOpContext = Credentials | HttpClient.HttpClient;
20
41
  */
21
42
  export type SpritesOpError = FlyIoOpError | SpritesNotEnabled;
22
43
  export type SpritesOpContext = FlyIoOpContext;
44
+ declare const MachineIdentity_base: Context.ServiceClass<MachineIdentity, "FlyIoMachineIdentity", true>;
45
+ /**
46
+ * Per-call signal that this Machines request is the Fly Machine itself
47
+ * (unix socket `/.fly/api`). Org tokens stay on {@link Credentials} for
48
+ * GetSecret in the same process; this service only changes headers:
49
+ * omit `Authorization`, send `Connection: close`.
50
+ */
51
+ export declare class MachineIdentity extends MachineIdentity_base {
52
+ }
23
53
  export declare const FlyIoProtocol: Layer.Layer<API.Protocol>;
24
54
  /** MPG UI-EX REST at `https://api.fly.io` with the Machines bearer token. */
25
55
  export declare const FlyApiProtocol: Layer.Layer<API.Protocol>;
26
56
  /** Sprites REST at `https://api.sprites.dev/v1`, minted from `FLY_API_TOKEN`. */
27
57
  export declare const SpritesProtocol: Layer.Layer<API.Protocol>;
28
58
  export declare const FlyGraphqlProtocol: Layer.Layer<API.Protocol>;
59
+ export {};
29
60
  //# sourceMappingURL=protocol.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"protocol.d.ts","sourceRoot":"","sources":["../src/protocol.ts"],"names":[],"mappings":"AAqBA,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AAItC,OAAO,KAAK,UAAU,MAAM,iCAAiC,CAAC;AAC9D,OAAO,KAAK,KAAK,eAAe,MAAM,sCAAsC,CAAC;AAG7E,OAAO,KAAK,GAAG,MAAM,2BAA2B,CAAC;AAYjD,OAAO,EAGL,KAAK,WAAW,EACjB,MAAM,8BAA8B,CAAC;AAEtC,OAAO,EACL,WAAW,EAIZ,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAGL,wCAAwC,EACxC,iBAAiB,EAEjB,KAAK,aAAa,EACnB,MAAM,aAAa,CAAC;AASrB;;;;;GAKG;AACH,MAAM,MAAM,YAAY,GACpB,aAAa,GACb,WAAW,GACX,wCAAwC,GACxC,eAAe,CAAC,eAAe,CAAC;AAEpC,4EAA4E;AAC5E,MAAM,MAAM,cAAc,GAAG,WAAW,GAAG,UAAU,CAAC,UAAU,CAAC;AAEjE;;;GAGG;AACH,MAAM,MAAM,cAAc,GAAG,YAAY,GAAG,iBAAiB,CAAC;AAC9D,MAAM,MAAM,gBAAgB,GAAG,cAAc,CAAC;AAwC9C,eAAO,MAAM,aAAa,EAAE,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAUhD,CAAC;AAEL,6EAA6E;AAC7E,eAAO,MAAM,cAAc,EAAE,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAUjD,CAAC;AA4YL,iFAAiF;AACjF,eAAO,MAAM,eAAe,EAAE,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CASrD,CAAC;AAkLF,eAAO,MAAM,kBAAkB,EAAE,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAOxD,CAAC"}
1
+ {"version":3,"file":"protocol.d.ts","sourceRoot":"","sources":["../src/protocol.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AACH,OAAO,KAAK,OAAO,MAAM,gBAAgB,CAAC;AAE1C,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AAKtC,OAAO,KAAK,UAAU,MAAM,iCAAiC,CAAC;AAC9D,OAAO,KAAK,KAAK,eAAe,MAAM,sCAAsC,CAAC;AAG7E,OAAO,KAAK,GAAG,MAAM,2BAA2B,CAAC;AAYjD,OAAO,EAGL,KAAK,WAAW,EACjB,MAAM,8BAA8B,CAAC;AAEtC,OAAO,EACL,WAAW,EAIZ,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAGL,wCAAwC,EACxC,iBAAiB,EAEjB,KAAK,aAAa,EACnB,MAAM,aAAa,CAAC;AASrB;;;;;GAKG;AACH,MAAM,MAAM,YAAY,GACpB,aAAa,GACb,WAAW,GACX,wCAAwC,GACxC,eAAe,CAAC,eAAe,CAAC;AAEpC,4EAA4E;AAC5E,MAAM,MAAM,cAAc,GAAG,WAAW,GAAG,UAAU,CAAC,UAAU,CAAC;AAEjE;;;GAGG;AACH,MAAM,MAAM,cAAc,GAAG,YAAY,GAAG,iBAAiB,CAAC;AAC9D,MAAM,MAAM,gBAAgB,GAAG,cAAc,CAAC;;AAwC9C;;;;;GAKG;AACH,qBAAa,eAAgB,SAAQ,oBAEpC;CAAG;AAYJ,eAAO,MAAM,aAAa,EAAE,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAkBZ,CAAC;AAEzC,6EAA6E;AAC7E,eAAO,MAAM,cAAc,EAAE,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAUjD,CAAC;AA4YL,iFAAiF;AACjF,eAAO,MAAM,eAAe,EAAE,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CASrD,CAAC;AAkLF,eAAO,MAAM,kBAAkB,EAAE,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAOxD,CAAC"}
package/lib/protocol.js CHANGED
@@ -18,8 +18,10 @@
18
18
  * The minted token is cached process-wide, then sent as
19
19
  * `Authorization: Bearer` on sprite ops. There is no `SPRITES_TOKEN`.
20
20
  */
21
+ import * as Context from "effect/Context";
21
22
  import * as Effect from "effect/Effect";
22
23
  import * as Layer from "effect/Layer";
24
+ import * as Option from "effect/Option";
23
25
  import * as Redacted from "effect/Redacted";
24
26
  import * as Schema from "effect/Schema";
25
27
  import * as HttpClient from "effect/unstable/http/HttpClient";
@@ -65,7 +67,15 @@ const resolveFlyCreds = Effect.gen(function* () {
65
67
  const resolve = yield* Credentials;
66
68
  return yield* resolve;
67
69
  });
68
- export const FlyIoProtocol = makeRestProtocol({
70
+ /**
71
+ * Per-call signal that this Machines request is the Fly Machine itself
72
+ * (unix socket `/.fly/api`). Org tokens stay on {@link Credentials} for
73
+ * GetSecret in the same process; this service only changes headers:
74
+ * omit `Authorization`, send `Connection: close`.
75
+ */
76
+ export class MachineIdentity extends Context.Service()("FlyIoMachineIdentity") {
77
+ }
78
+ const FlyIoProtocolRest = makeRestProtocol({
69
79
  credentials: resolveFlyCreds,
70
80
  baseUrl: (creds) => creds.apiBaseUrl,
71
81
  headers: (creds) => ({
@@ -74,6 +84,19 @@ export const FlyIoProtocol = makeRestProtocol({
74
84
  errorEnvelope: flyErrorEnvelope,
75
85
  unknownError: ({ message, body }) => new UnknownFlyIoError({ message, body }),
76
86
  });
87
+ export const FlyIoProtocol = Layer.effect(API.Protocol, Effect.gen(function* () {
88
+ const rest = yield* API.Protocol;
89
+ return API.Protocol.of({
90
+ encode: (args) => Effect.gen(function* () {
91
+ const request = yield* rest.encode(args);
92
+ const machine = yield* Effect.serviceOption(MachineIdentity);
93
+ if (Option.isNone(machine))
94
+ return request;
95
+ return request.pipe(HttpClientRequest.removeHeader("authorization"), HttpClientRequest.setHeader("connection", "close"));
96
+ }),
97
+ decode: rest.decode,
98
+ });
99
+ })).pipe(Layer.provide(FlyIoProtocolRest));
77
100
  /** MPG UI-EX REST at `https://api.fly.io` with the Machines bearer token. */
78
101
  export const FlyApiProtocol = makeRestProtocol({
79
102
  credentials: resolveFlyCreds,
@@ -1 +1 @@
1
- {"version":3,"file":"protocol.js","sourceRoot":"","sources":["../src/protocol.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"protocol.js","sourceRoot":"","sources":["../src/protocol.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@distilled.cloud/fly-io",
3
- "version": "1.0.0-rc.6",
3
+ "version": "1.0.0-rc.7",
4
4
  "repository": {
5
5
  "type": "git",
6
6
  "url": "https://github.com/alchemy-run/distilled",
@@ -89,15 +89,15 @@
89
89
  }
90
90
  },
91
91
  "dependencies": {
92
- "@distilled.cloud/core": "1.0.0-rc.6"
92
+ "@distilled.cloud/core": "1.0.0-rc.7"
93
93
  },
94
94
  "devDependencies": {
95
95
  "@types/bun": "latest",
96
96
  "@types/node": "latest",
97
- "@effect/platform-bun": ">=4.0.0-rc.110 || >=4.0.0"
97
+ "@effect/platform-bun": ">=4.0.0-rc.111 || >=4.0.0"
98
98
  },
99
99
  "peerDependencies": {
100
- "effect": ">=4.0.0-rc.110 || >=4.0.0"
100
+ "effect": ">=4.0.0-rc.111 || >=4.0.0"
101
101
  },
102
102
  "scripts": {
103
103
  "convert": "bun scripts/convert.ts",
package/src/index.ts CHANGED
@@ -37,6 +37,7 @@ export {
37
37
  FlyApiProtocol,
38
38
  FlyGraphqlProtocol,
39
39
  SpritesProtocol,
40
+ MachineIdentity,
40
41
  type FlyIoOpError,
41
42
  type FlyIoOpContext,
42
43
  type SpritesOpError,
package/src/protocol.ts CHANGED
@@ -18,8 +18,10 @@
18
18
  * The minted token is cached process-wide, then sent as
19
19
  * `Authorization: Bearer` on sprite ops. There is no `SPRITES_TOKEN`.
20
20
  */
21
+ import * as Context from "effect/Context";
21
22
  import * as Effect from "effect/Effect";
22
23
  import * as Layer from "effect/Layer";
24
+ import * as Option from "effect/Option";
23
25
  import * as Redacted from "effect/Redacted";
24
26
  import * as Schema from "effect/Schema";
25
27
  import type * as AST from "effect/SchemaAST";
@@ -127,17 +129,45 @@ const resolveFlyCreds = Effect.gen(function* () {
127
129
  return yield* resolve;
128
130
  });
129
131
 
130
- export const FlyIoProtocol: Layer.Layer<API.Protocol> =
131
- makeRestProtocol<Config>({
132
- credentials: resolveFlyCreds,
133
- baseUrl: (creds) => creds.apiBaseUrl,
134
- headers: (creds) => ({
135
- Authorization: `Bearer ${Redacted.value(creds.apiKey)}`,
136
- }),
137
- errorEnvelope: flyErrorEnvelope,
138
- unknownError: ({ message, body }) =>
139
- new UnknownFlyIoError({ message, body }),
140
- });
132
+ /**
133
+ * Per-call signal that this Machines request is the Fly Machine itself
134
+ * (unix socket `/.fly/api`). Org tokens stay on {@link Credentials} for
135
+ * GetSecret in the same process; this service only changes headers:
136
+ * omit `Authorization`, send `Connection: close`.
137
+ */
138
+ export class MachineIdentity extends Context.Service<MachineIdentity, true>()(
139
+ "FlyIoMachineIdentity",
140
+ ) {}
141
+
142
+ const FlyIoProtocolRest: Layer.Layer<API.Protocol> = makeRestProtocol<Config>({
143
+ credentials: resolveFlyCreds,
144
+ baseUrl: (creds) => creds.apiBaseUrl,
145
+ headers: (creds) => ({
146
+ Authorization: `Bearer ${Redacted.value(creds.apiKey)}`,
147
+ }),
148
+ errorEnvelope: flyErrorEnvelope,
149
+ unknownError: ({ message, body }) => new UnknownFlyIoError({ message, body }),
150
+ });
151
+
152
+ export const FlyIoProtocol: Layer.Layer<API.Protocol> = Layer.effect(
153
+ API.Protocol,
154
+ Effect.gen(function* () {
155
+ const rest = yield* API.Protocol;
156
+ return API.Protocol.of({
157
+ encode: (args) =>
158
+ Effect.gen(function* () {
159
+ const request = yield* rest.encode(args);
160
+ const machine = yield* Effect.serviceOption(MachineIdentity);
161
+ if (Option.isNone(machine)) return request;
162
+ return request.pipe(
163
+ HttpClientRequest.removeHeader("authorization"),
164
+ HttpClientRequest.setHeader("connection", "close"),
165
+ );
166
+ }),
167
+ decode: rest.decode,
168
+ });
169
+ }),
170
+ ).pipe(Layer.provide(FlyIoProtocolRest));
141
171
 
142
172
  /** MPG UI-EX REST at `https://api.fly.io` with the Machines bearer token. */
143
173
  export const FlyApiProtocol: Layer.Layer<API.Protocol> =