@alchemy.run/fly 2.0.0-beta.85 → 2.0.0-beta.87

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.
Files changed (271) hide show
  1. package/lib/App.d.ts +26 -4
  2. package/lib/App.d.ts.map +1 -1
  3. package/lib/App.js +25 -2
  4. package/lib/App.js.map +1 -1
  5. package/lib/AuthProvider.d.ts +1 -1
  6. package/lib/AuthProvider.d.ts.map +1 -1
  7. package/lib/AuthProvider.js.map +1 -1
  8. package/lib/BindService.d.ts +7 -7
  9. package/lib/BindService.d.ts.map +1 -1
  10. package/lib/BindService.js +20 -27
  11. package/lib/BindService.js.map +1 -1
  12. package/lib/Bootstrap.d.ts.map +1 -1
  13. package/lib/Bootstrap.js +2 -1
  14. package/lib/Bootstrap.js.map +1 -1
  15. package/lib/Bucket.d.ts +36 -2
  16. package/lib/Bucket.d.ts.map +1 -1
  17. package/lib/Bucket.js +181 -28
  18. package/lib/Bucket.js.map +1 -1
  19. package/lib/BucketBinding.d.ts.map +1 -1
  20. package/lib/BucketBinding.js.map +1 -1
  21. package/lib/Catalog.d.ts.map +1 -1
  22. package/lib/Catalog.js.map +1 -1
  23. package/lib/Certificate.d.ts +25 -1
  24. package/lib/Certificate.d.ts.map +1 -1
  25. package/lib/Certificate.js +18 -0
  26. package/lib/Certificate.js.map +1 -1
  27. package/lib/Checkpoint.d.ts.map +1 -1
  28. package/lib/Checkpoint.js.map +1 -1
  29. package/lib/CheckpointHttp.d.ts.map +1 -1
  30. package/lib/CheckpointHttp.js.map +1 -1
  31. package/lib/ConnectPostgres.d.ts.map +1 -1
  32. package/lib/ConnectPostgres.js.map +1 -1
  33. package/lib/ConnectPostgresHttp.d.ts.map +1 -1
  34. package/lib/ConnectPostgresHttp.js.map +1 -1
  35. package/lib/Contributions.d.ts +1 -1
  36. package/lib/Contributions.d.ts.map +1 -1
  37. package/lib/Contributions.js.map +1 -1
  38. package/lib/Credentials.d.ts +4 -3
  39. package/lib/Credentials.d.ts.map +1 -1
  40. package/lib/Credentials.js +9 -5
  41. package/lib/Credentials.js.map +1 -1
  42. package/lib/Decrypt.d.ts.map +1 -1
  43. package/lib/Decrypt.js.map +1 -1
  44. package/lib/DecryptHttp.d.ts.map +1 -1
  45. package/lib/DecryptHttp.js.map +1 -1
  46. package/lib/DeleteObject.d.ts.map +1 -1
  47. package/lib/DeleteObject.js.map +1 -1
  48. package/lib/DeleteObjectHttp.d.ts.map +1 -1
  49. package/lib/DeleteObjectHttp.js.map +1 -1
  50. package/lib/Deployment.d.ts.map +1 -1
  51. package/lib/Deployment.js.map +1 -1
  52. package/lib/DeploymentImages.d.ts.map +1 -1
  53. package/lib/DeploymentImages.js.map +1 -1
  54. package/lib/DeploymentState.d.ts.map +1 -1
  55. package/lib/DeploymentState.js.map +1 -1
  56. package/lib/Encrypt.d.ts.map +1 -1
  57. package/lib/Encrypt.js.map +1 -1
  58. package/lib/EncryptHttp.d.ts.map +1 -1
  59. package/lib/EncryptHttp.js.map +1 -1
  60. package/lib/Environment.d.ts.map +1 -1
  61. package/lib/Environment.js.map +1 -1
  62. package/lib/Errors.d.ts.map +1 -1
  63. package/lib/Errors.js.map +1 -1
  64. package/lib/Exec.d.ts.map +1 -1
  65. package/lib/Exec.js.map +1 -1
  66. package/lib/ExecHttp.d.ts.map +1 -1
  67. package/lib/ExecHttp.js.map +1 -1
  68. package/lib/GetObject.d.ts.map +1 -1
  69. package/lib/GetObject.js.map +1 -1
  70. package/lib/GetObjectHttp.d.ts.map +1 -1
  71. package/lib/GetObjectHttp.js.map +1 -1
  72. package/lib/GetSecret.d.ts.map +1 -1
  73. package/lib/GetSecret.js.map +1 -1
  74. package/lib/GetSecretHttp.d.ts.map +1 -1
  75. package/lib/GetSecretHttp.js.map +1 -1
  76. package/lib/HeadObject.d.ts.map +1 -1
  77. package/lib/HeadObject.js.map +1 -1
  78. package/lib/HeadObjectHttp.d.ts.map +1 -1
  79. package/lib/HeadObjectHttp.js.map +1 -1
  80. package/lib/IpAssignment.d.ts +24 -1
  81. package/lib/IpAssignment.d.ts.map +1 -1
  82. package/lib/IpAssignment.js +17 -0
  83. package/lib/IpAssignment.js.map +1 -1
  84. package/lib/ListObjectsV2.d.ts.map +1 -1
  85. package/lib/ListObjectsV2.js.map +1 -1
  86. package/lib/ListObjectsV2Http.d.ts.map +1 -1
  87. package/lib/ListObjectsV2Http.js.map +1 -1
  88. package/lib/ListSecrets.d.ts.map +1 -1
  89. package/lib/ListSecrets.js.map +1 -1
  90. package/lib/ListSecretsHttp.d.ts.map +1 -1
  91. package/lib/ListSecretsHttp.js.map +1 -1
  92. package/lib/Machine.d.ts +26 -1
  93. package/lib/Machine.d.ts.map +1 -1
  94. package/lib/Machine.js +16 -1
  95. package/lib/Machine.js.map +1 -1
  96. package/lib/MachineContainers.d.ts.map +1 -1
  97. package/lib/MachineContainers.js.map +1 -1
  98. package/lib/Metadata.d.ts.map +1 -1
  99. package/lib/Metadata.js.map +1 -1
  100. package/lib/MountVolume.d.ts +7 -2
  101. package/lib/MountVolume.d.ts.map +1 -1
  102. package/lib/MountVolume.js.map +1 -1
  103. package/lib/Postgres.d.ts +33 -1
  104. package/lib/Postgres.d.ts.map +1 -1
  105. package/lib/Postgres.js +20 -0
  106. package/lib/Postgres.js.map +1 -1
  107. package/lib/PostgresMigrations.d.ts.map +1 -1
  108. package/lib/PostgresMigrations.js.map +1 -1
  109. package/lib/Providers.d.ts +1 -1
  110. package/lib/Providers.d.ts.map +1 -1
  111. package/lib/Providers.js.map +1 -1
  112. package/lib/PutObject.d.ts.map +1 -1
  113. package/lib/PutObject.js.map +1 -1
  114. package/lib/PutObjectHttp.d.ts.map +1 -1
  115. package/lib/PutObjectHttp.js.map +1 -1
  116. package/lib/ReadRedis.d.ts.map +1 -1
  117. package/lib/ReadRedis.js.map +1 -1
  118. package/lib/ReadRedisHttp.d.ts.map +1 -1
  119. package/lib/ReadRedisHttp.js.map +1 -1
  120. package/lib/ReadWriteRedis.d.ts.map +1 -1
  121. package/lib/ReadWriteRedis.js.map +1 -1
  122. package/lib/ReadWriteRedisHttp.d.ts.map +1 -1
  123. package/lib/ReadWriteRedisHttp.js.map +1 -1
  124. package/lib/Redis.d.ts +21 -1
  125. package/lib/Redis.d.ts.map +1 -1
  126. package/lib/Redis.js +28 -0
  127. package/lib/Redis.js.map +1 -1
  128. package/lib/RedisBinding.d.ts.map +1 -1
  129. package/lib/RedisBinding.js.map +1 -1
  130. package/lib/RedisHttp.d.ts.map +1 -1
  131. package/lib/RedisHttp.js.map +1 -1
  132. package/lib/Region.d.ts.map +1 -1
  133. package/lib/Region.js.map +1 -1
  134. package/lib/Secret.d.ts +22 -1
  135. package/lib/Secret.d.ts.map +1 -1
  136. package/lib/Secret.js +15 -0
  137. package/lib/Secret.js.map +1 -1
  138. package/lib/SecretHttp.d.ts.map +1 -1
  139. package/lib/SecretHttp.js.map +1 -1
  140. package/lib/SecretKey.d.ts +22 -1
  141. package/lib/SecretKey.d.ts.map +1 -1
  142. package/lib/SecretKey.js +15 -0
  143. package/lib/SecretKey.js.map +1 -1
  144. package/lib/SecretKeyHttp.d.ts.map +1 -1
  145. package/lib/SecretKeyHttp.js.map +1 -1
  146. package/lib/Service.d.ts +96 -21
  147. package/lib/Service.d.ts.map +1 -1
  148. package/lib/Service.js +251 -37
  149. package/lib/Service.js.map +1 -1
  150. package/lib/Sign.d.ts.map +1 -1
  151. package/lib/Sign.js.map +1 -1
  152. package/lib/SignHttp.d.ts.map +1 -1
  153. package/lib/SignHttp.js.map +1 -1
  154. package/lib/Sprite.d.ts +22 -3
  155. package/lib/Sprite.d.ts.map +1 -1
  156. package/lib/Sprite.js +15 -0
  157. package/lib/Sprite.js.map +1 -1
  158. package/lib/SpriteHttp.d.ts.map +1 -1
  159. package/lib/SpriteHttp.js.map +1 -1
  160. package/lib/Verify.d.ts.map +1 -1
  161. package/lib/Verify.js.map +1 -1
  162. package/lib/VerifyHttp.d.ts.map +1 -1
  163. package/lib/VerifyHttp.js.map +1 -1
  164. package/lib/Volume.d.ts +3 -3
  165. package/lib/Volume.d.ts.map +1 -1
  166. package/lib/Volume.js +17 -1
  167. package/lib/Volume.js.map +1 -1
  168. package/lib/VolumeSnapshot.d.ts +32 -1
  169. package/lib/VolumeSnapshot.d.ts.map +1 -1
  170. package/lib/VolumeSnapshot.js +23 -0
  171. package/lib/VolumeSnapshot.js.map +1 -1
  172. package/lib/Website/AssetDeployment.d.ts.map +1 -1
  173. package/lib/Website/AssetDeployment.js.map +1 -1
  174. package/lib/Website/Astro.d.ts.map +1 -1
  175. package/lib/Website/Astro.js.map +1 -1
  176. package/lib/Website/Foldkit.d.ts.map +1 -1
  177. package/lib/Website/Foldkit.js.map +1 -1
  178. package/lib/Website/FrameworkSite.d.ts.map +1 -1
  179. package/lib/Website/FrameworkSite.js.map +1 -1
  180. package/lib/Website/Nextjs.d.ts.map +1 -1
  181. package/lib/Website/Nextjs.js.map +1 -1
  182. package/lib/Website/Nuxt.d.ts.map +1 -1
  183. package/lib/Website/Nuxt.js.map +1 -1
  184. package/lib/Website/Octane.d.ts.map +1 -1
  185. package/lib/Website/Octane.js.map +1 -1
  186. package/lib/Website/ReactRouter.d.ts.map +1 -1
  187. package/lib/Website/ReactRouter.js.map +1 -1
  188. package/lib/Website/SolidStart.d.ts.map +1 -1
  189. package/lib/Website/SolidStart.js.map +1 -1
  190. package/lib/Website/StaticSite.d.ts.map +1 -1
  191. package/lib/Website/StaticSite.js.map +1 -1
  192. package/lib/Website/SvelteKit.d.ts.map +1 -1
  193. package/lib/Website/SvelteKit.js.map +1 -1
  194. package/lib/Website/TanStackStart.d.ts.map +1 -1
  195. package/lib/Website/TanStackStart.js.map +1 -1
  196. package/lib/Website/Vinext.d.ts.map +1 -1
  197. package/lib/Website/Vinext.js.map +1 -1
  198. package/lib/Website/Vite.d.ts.map +1 -1
  199. package/lib/Website/Vite.js.map +1 -1
  200. package/lib/Website/Vocs.d.ts.map +1 -1
  201. package/lib/Website/Vocs.js.map +1 -1
  202. package/lib/Website/Waku.d.ts.map +1 -1
  203. package/lib/Website/Waku.js.map +1 -1
  204. package/lib/Website/index.d.ts.map +1 -1
  205. package/lib/Website/index.js.map +1 -1
  206. package/lib/WriteCertificates.d.ts.map +1 -1
  207. package/lib/WriteCertificates.js.map +1 -1
  208. package/lib/WriteCertificatesHttp.d.ts.map +1 -1
  209. package/lib/WriteCertificatesHttp.js.map +1 -1
  210. package/lib/WriteRedis.d.ts.map +1 -1
  211. package/lib/WriteRedis.js.map +1 -1
  212. package/lib/WriteRedisHttp.d.ts.map +1 -1
  213. package/lib/WriteRedisHttp.js.map +1 -1
  214. package/lib/WriteSecret.d.ts.map +1 -1
  215. package/lib/WriteSecret.js.map +1 -1
  216. package/lib/WriteSecretHttp.d.ts.map +1 -1
  217. package/lib/WriteSecretHttp.js.map +1 -1
  218. package/lib/bluegreen.d.ts +5 -4
  219. package/lib/bluegreen.d.ts.map +1 -1
  220. package/lib/bluegreen.js +1 -1
  221. package/lib/bluegreen.js.map +1 -1
  222. package/lib/hosted.d.ts +16 -0
  223. package/lib/hosted.d.ts.map +1 -1
  224. package/lib/hosted.js +101 -11
  225. package/lib/hosted.js.map +1 -1
  226. package/lib/index.d.ts.map +1 -1
  227. package/lib/index.js.map +1 -1
  228. package/lib/internal/Oidc.d.ts +15 -0
  229. package/lib/internal/Oidc.d.ts.map +1 -0
  230. package/lib/internal/Oidc.js +73 -0
  231. package/lib/internal/Oidc.js.map +1 -0
  232. package/lib/internal/RemoteBuilder.d.ts.map +1 -1
  233. package/lib/internal/RemoteBuilder.js.map +1 -1
  234. package/lib/leases.d.ts +6 -2
  235. package/lib/leases.d.ts.map +1 -1
  236. package/lib/leases.js +25 -5
  237. package/lib/leases.js.map +1 -1
  238. package/lib/ports.d.ts.map +1 -1
  239. package/lib/ports.js.map +1 -1
  240. package/lib/replicas.d.ts +38 -26
  241. package/lib/replicas.d.ts.map +1 -1
  242. package/lib/replicas.js +57 -2
  243. package/lib/replicas.js.map +1 -1
  244. package/lib/rpc.d.ts +14 -12
  245. package/lib/rpc.d.ts.map +1 -1
  246. package/lib/rpc.js +38 -40
  247. package/lib/rpc.js.map +1 -1
  248. package/package.json +15 -15
  249. package/src/App.ts +36 -3
  250. package/src/BindService.ts +27 -34
  251. package/src/Bootstrap.ts +2 -0
  252. package/src/Bucket.ts +264 -33
  253. package/src/Certificate.ts +32 -1
  254. package/src/Credentials.ts +9 -5
  255. package/src/IpAssignment.ts +31 -1
  256. package/src/Machine.ts +34 -1
  257. package/src/MountVolume.ts +5 -2
  258. package/src/Postgres.ts +43 -1
  259. package/src/Redis.ts +43 -1
  260. package/src/Secret.ts +29 -1
  261. package/src/SecretKey.ts +29 -1
  262. package/src/Service.ts +389 -70
  263. package/src/Sprite.ts +34 -8
  264. package/src/Volume.ts +25 -1
  265. package/src/VolumeSnapshot.ts +39 -1
  266. package/src/bluegreen.ts +4 -1
  267. package/src/hosted.ts +118 -13
  268. package/src/internal/Oidc.ts +99 -0
  269. package/src/leases.ts +35 -7
  270. package/src/replicas.ts +63 -2
  271. package/src/rpc.ts +37 -40
package/lib/Service.d.ts CHANGED
@@ -2,12 +2,11 @@ import * as machines from "@distilled.cloud/fly-io/machines";
2
2
  import { AlchemyContext } from "alchemy/AlchemyContext";
3
3
  import { Platform, type Main, type MainRpc, type PlatformProps } from "alchemy/Platform";
4
4
  import * as Provider from "alchemy/Provider";
5
- import type { Resource } from "alchemy/Resource";
5
+ import type { LookupMethod, Resource } from "alchemy/Resource";
6
6
  import type { ServerHost } from "alchemy/Runtime/Process";
7
7
  import { Stack } from "alchemy/Stack";
8
8
  import * as Effect from "effect/Effect";
9
9
  import * as Layer from "effect/Layer";
10
- import * as Redacted from "effect/Redacted";
11
10
  import { App } from "./App.ts";
12
11
  import { type MachineDeploy, type MachineShutdown, type MachineCheck } from "./Deployment.ts";
13
12
  import { type FlyBuildOptions, type FlyHostRuntimeContext } from "./hosted.ts";
@@ -74,18 +73,21 @@ export interface ServiceProps extends PlatformProps {
74
73
  * @default 7780
75
74
  */
76
75
  bindingPort?: number;
77
- /**
78
- * Caller token for bound callers. Set automatically from an
79
- * `Alchemy.Random` child resource; do not pass it.
80
- * @internal
81
- */
82
- rpcToken?: Redacted.Redacted<string>;
83
76
  /**
84
77
  * Module entrypoint bundled with rolldown and baked into a Docker
85
78
  * image pushed to `registry.fly.io`. Typically `import.meta.url`.
86
79
  * A content-hash change updates the workload using the selected deployment strategy.
80
+ * Set this or {@link context}.
81
+ */
82
+ main?: string;
83
+ /**
84
+ * A Docker build context whose `Dockerfile` builds the Service's image
85
+ * as it is, on a Fly remote builder (or locally with
86
+ * `build: { remote: false }`), for `linux/amd64`. The image's own
87
+ * `CMD` runs. A change to any file in it updates the workload. Set this
88
+ * or {@link main}.
87
89
  */
88
- main: string;
90
+ context?: string;
89
91
  /**
90
92
  * Region or regions to run in (`"iad"`, `["iad", "lhr"]`). The
91
93
  * Service runs `count` Machines in each region behind one hostname;
@@ -207,6 +209,18 @@ export interface ServiceEndpoint {
207
209
  */
208
210
  url: string | undefined;
209
211
  }
212
+ /** An App secret a {@link Service} wrote. Never the plaintext. */
213
+ export interface BoundSecret {
214
+ /**
215
+ * Name of the App secret, scoped to the Service
216
+ * (`ALCHEMY_<hash>_<ENV_VAR>`). The Machine maps it back to its env var.
217
+ */
218
+ name: string;
219
+ /** Fly's digest of the value after the write. */
220
+ digest: string;
221
+ /** sha256 of `<name>:<value>` for the value written. Never the plaintext. */
222
+ sha256: string;
223
+ }
210
224
  export type Service = Resource<"Fly.Service", ServiceProps, {
211
225
  /** Whether recovery must finish an interrupted deployment. */
212
226
  rolloutPending?: boolean;
@@ -219,8 +233,19 @@ export type Service = Resource<"Fly.Service", ServiceProps, {
219
233
  * shared App's network. `undefined` for the organization's default.
220
234
  */
221
235
  network?: string;
222
- /** Token bound callers send with RPC calls. */
223
- rpcToken?: Redacted.Redacted<string>;
236
+ /**
237
+ * App secrets the Service wrote from bound `Config` and Redacted
238
+ * values, by the env var they set: the scoped secret name, Fly's
239
+ * digest after the write and a sha256 of the value.
240
+ */
241
+ secrets?: Record<string, BoundSecret>;
242
+ /** App-secrets version that holds {@link secrets}. */
243
+ secretsVersion?: number;
244
+ /**
245
+ * Slug of the organization the App is in. Its Machines' OIDC tokens are
246
+ * issued by `https://oidc.fly.io/{orgSlug}`.
247
+ */
248
+ orgSlug?: string;
224
249
  /** Fly Machine id of replica 0. */
225
250
  machineId: string;
226
251
  /** Fly Machine ids of every replica. */
@@ -271,7 +296,20 @@ export type Service = Resource<"Fly.Service", ServiceProps, {
271
296
  code: {
272
297
  hash: string;
273
298
  };
274
- }, ServiceBinding, Providers>;
299
+ }, ServiceBinding, Providers, ServiceLookup>;
300
+ /**
301
+ * Props for {@link Service.lookup}: find a Service this stack doesn't
302
+ * manage by its App, and its name when the App holds several.
303
+ */
304
+ export interface ServiceLookup {
305
+ /** Fly App name the Service's Machines run in. */
306
+ appName: string;
307
+ /**
308
+ * Machine name of the Service, for an App that runs several. Omit it to
309
+ * take every Machine in the App.
310
+ */
311
+ name?: string;
312
+ }
275
313
  export declare const isService: (value: unknown) => value is Service;
276
314
  export type ServiceServices = ServerHost;
277
315
  /**
@@ -460,9 +498,9 @@ export type ServiceRuntimeContext = FlyHostRuntimeContext;
460
498
  * ### Call another Service
461
499
  * A Service can return methods next to `fetch`. Another Service calls
462
500
  * them by binding it with {@link bindService}, which returns a typed
463
- * client. Binding makes the caller deploy after the Service, and only
464
- * callers that bind a Service receive its caller token, so only they
465
- * can call its methods.
501
+ * client. Binding makes the caller deploy after the Service and records
502
+ * the caller's App on it, so only callers that bind a Service can call
503
+ * its methods.
466
504
  *
467
505
  * **Example:** A private Service with methods
468
506
  * ```typescript
@@ -496,9 +534,10 @@ export type ServiceRuntimeContext = FlyHostRuntimeContext;
496
534
  * ```
497
535
  *
498
536
  * Calls use plain HTTP to `privateUrl` inside Fly's WireGuard-encrypted
499
- * private network. The Service accepts a method call only with its
500
- * caller token and a `Fly-Src` signature from Fly's proxy for the same
501
- * organization, so the public internet can never call it. A public
537
+ * private network. The Service accepts a method call only with a
538
+ * `Fly-Src` signature from Fly's proxy naming the App of a Service that
539
+ * binds it, so neither the public internet nor any other App can call
540
+ * it, and no caller holds a key. A public
502
541
  * Service publishes an extra plain-HTTP port for bound callers,
503
542
  * `bindingPort` (default 7780), since its own ports are an HTTPS
504
543
  * redirect and HTTPS. `client.fetch` sends a request to the Service's
@@ -649,8 +688,18 @@ export type ServiceRuntimeContext = FlyHostRuntimeContext;
649
688
  *
650
689
  * ### Config
651
690
  * Yield `Config` in init. Alchemy reads the value from the env of
652
- * whoever deploys and writes it onto the Machine, so there is no need
653
- * to copy it into `env`.
691
+ * whoever deploys and stores it as a secret on the Service's App, so
692
+ * there is no need to copy it into `env` and it never appears in the
693
+ * Machine config. Redacted outputs of bound resources are stored the
694
+ * same way. The secret's name is scoped to the Service
695
+ * (`ALCHEMY_<hash>_API_KEY`) and the Machine maps it back to `API_KEY`,
696
+ * so it never collides with `Fly.Secret`, `fly secrets set` or an
697
+ * attachment. The bound value wins over an App secret already named
698
+ * `API_KEY`, which stays in the App untouched. The Machine sees the
699
+ * App's other secrets as they were at deploy; one set later with
700
+ * `fly secrets set` reaches it on the next deploy. A Service in a shared
701
+ * App (`app`) writes the values into the Machine env instead, because
702
+ * Fly gives every App secret to every Machine in the App.
654
703
  *
655
704
  * `Config.Redacted("API_KEY")` is `Redacted<string>`. Unwrap with
656
705
  * `Redacted.value` only where you need the raw string.
@@ -788,6 +837,20 @@ export type ServiceRuntimeContext = FlyHostRuntimeContext;
788
837
  * ) {}
789
838
  * ```
790
839
  *
840
+ * ### Run your own image
841
+ * `context` builds a directory's `Dockerfile` as it is, on a Fly remote
842
+ * builder, and runs the image's own `CMD`. A change to any file in the
843
+ * directory updates the Machines.
844
+ *
845
+ * **Example:** A Dockerfile build
846
+ * ```typescript
847
+ * const worker = yield* Fly.Service("Worker", {
848
+ * context: "./worker",
849
+ * public: false,
850
+ * services: [],
851
+ * });
852
+ * ```
853
+ *
791
854
  * ### Custom proxy services
792
855
  * `services` defaults to HTTP 80 (redirecting to HTTPS) + HTTPS 443
793
856
  * toward `port`, or plain HTTP 80 for a private Service. Pass a custom
@@ -950,10 +1013,22 @@ export type ServiceRuntimeContext = FlyHostRuntimeContext;
950
1013
  * See the [deployment guide](/fly/compute/deployments) for recovery,
951
1014
  * idle capacity, application responsibilities, and verification limits.
952
1015
  *
1016
+ * ### Looking up an existing Service
1017
+ * `Service.lookup` references a Service Alchemy doesn't manage (deployed
1018
+ * with `fly deploy` or by another stack). It is read during plan/deploy,
1019
+ * never created, updated or deleted, and `url`, `endpoints` and
1020
+ * `privateUrl` come from the Machines and addresses Fly reports.
1021
+ *
1022
+ * **Example:** Call a Service another stack deployed
1023
+ * ```typescript
1024
+ * const api = Fly.Service.lookup({ appName: "my-api" });
1025
+ * const url = api.privateUrl;
1026
+ * ```
1027
+ *
953
1028
  * @resource
954
1029
  * @product Service
955
1030
  */
956
- export declare const Service: Platform<Service, ServiceServices, ServiceShape, ServiceRuntimeContext>;
1031
+ export declare const Service: Platform<Service, ServiceServices, ServiceShape, ServiceRuntimeContext> & LookupMethod<Service>;
957
1032
  declare const ServiceNotCreated_base: new <A extends Record<string, any> = {}>(args: import("effect/Types").VoidIfEmpty<{ readonly [P in keyof A as P extends "_tag" ? never : P]: A[P]; }>) => import("effect/Cause").YieldableError & {
958
1033
  readonly _tag: "Fly.ServiceNotCreated";
959
1034
  } & Readonly<A>;
@@ -1 +1 @@
1
- {"version":3,"file":"Service.d.ts","sourceRoot":"","sources":["../src/Service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Service.d.ts","sources":["../src/Service.ts"],"names":[],"mappings":"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"}