@alchemy.run/fly 0.0.0 → 2.0.0-beta.84
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/LICENSE +201 -0
- package/README.md +57 -4
- package/lib/App.d.ts +230 -0
- package/lib/App.d.ts.map +1 -0
- package/lib/App.js +340 -0
- package/lib/App.js.map +1 -0
- package/lib/AuthProvider.d.ts +22 -0
- package/lib/AuthProvider.d.ts.map +1 -0
- package/lib/AuthProvider.js +48 -0
- package/lib/AuthProvider.js.map +1 -0
- package/lib/BindService.d.ts +159 -0
- package/lib/BindService.d.ts.map +1 -0
- package/lib/BindService.js +222 -0
- package/lib/BindService.js.map +1 -0
- package/lib/Bootstrap.d.ts +8 -0
- package/lib/Bootstrap.d.ts.map +1 -0
- package/lib/Bootstrap.js +41 -0
- package/lib/Bootstrap.js.map +1 -0
- package/lib/Bucket.d.ts +278 -0
- package/lib/Bucket.d.ts.map +1 -0
- package/lib/Bucket.js +658 -0
- package/lib/Bucket.js.map +1 -0
- package/lib/BucketBinding.d.ts +33 -0
- package/lib/BucketBinding.d.ts.map +1 -0
- package/lib/BucketBinding.js +70 -0
- package/lib/BucketBinding.js.map +1 -0
- package/lib/Catalog.d.ts +28 -0
- package/lib/Catalog.d.ts.map +1 -0
- package/lib/Catalog.js +31 -0
- package/lib/Catalog.js.map +1 -0
- package/lib/Certificate.d.ts +189 -0
- package/lib/Certificate.d.ts.map +1 -0
- package/lib/Certificate.js +380 -0
- package/lib/Certificate.js.map +1 -0
- package/lib/Checkpoint.d.ts +55 -0
- package/lib/Checkpoint.d.ts.map +1 -0
- package/lib/Checkpoint.js +3 -0
- package/lib/Checkpoint.js.map +1 -0
- package/lib/CheckpointHttp.d.ts +22 -0
- package/lib/CheckpointHttp.d.ts.map +1 -0
- package/lib/CheckpointHttp.js +53 -0
- package/lib/CheckpointHttp.js.map +1 -0
- package/lib/ConnectPostgres.d.ts +58 -0
- package/lib/ConnectPostgres.d.ts.map +1 -0
- package/lib/ConnectPostgres.js +13 -0
- package/lib/ConnectPostgres.js.map +1 -0
- package/lib/ConnectPostgresHttp.d.ts +26 -0
- package/lib/ConnectPostgresHttp.d.ts.map +1 -0
- package/lib/ConnectPostgresHttp.js +57 -0
- package/lib/ConnectPostgresHttp.js.map +1 -0
- package/lib/Contributions.d.ts +7 -0
- package/lib/Contributions.d.ts.map +1 -0
- package/lib/Contributions.js +6 -0
- package/lib/Contributions.js.map +1 -0
- package/lib/Credentials.d.ts +33 -0
- package/lib/Credentials.d.ts.map +1 -0
- package/lib/Credentials.js +59 -0
- package/lib/Credentials.js.map +1 -0
- package/lib/Decrypt.d.ts +52 -0
- package/lib/Decrypt.d.ts.map +1 -0
- package/lib/Decrypt.js +3 -0
- package/lib/Decrypt.js.map +1 -0
- package/lib/DecryptHttp.d.ts +22 -0
- package/lib/DecryptHttp.d.ts.map +1 -0
- package/lib/DecryptHttp.js +43 -0
- package/lib/DecryptHttp.js.map +1 -0
- package/lib/DeleteObject.d.ts +29 -0
- package/lib/DeleteObject.d.ts.map +1 -0
- package/lib/DeleteObject.js +3 -0
- package/lib/DeleteObject.js.map +1 -0
- package/lib/DeleteObjectHttp.d.ts +12 -0
- package/lib/DeleteObjectHttp.d.ts.map +1 -0
- package/lib/DeleteObjectHttp.js +17 -0
- package/lib/DeleteObjectHttp.js.map +1 -0
- package/lib/Deployment.d.ts +51 -0
- package/lib/Deployment.d.ts.map +1 -0
- package/lib/Deployment.js +62 -0
- package/lib/Deployment.js.map +1 -0
- package/lib/DeploymentImages.d.ts +18 -0
- package/lib/DeploymentImages.d.ts.map +1 -0
- package/lib/DeploymentImages.js +61 -0
- package/lib/DeploymentImages.js.map +1 -0
- package/lib/DeploymentState.d.ts +17 -0
- package/lib/DeploymentState.d.ts.map +1 -0
- package/lib/DeploymentState.js +87 -0
- package/lib/DeploymentState.js.map +1 -0
- package/lib/Encrypt.d.ts +50 -0
- package/lib/Encrypt.d.ts.map +1 -0
- package/lib/Encrypt.js +3 -0
- package/lib/Encrypt.js.map +1 -0
- package/lib/EncryptHttp.d.ts +22 -0
- package/lib/EncryptHttp.d.ts.map +1 -0
- package/lib/EncryptHttp.js +39 -0
- package/lib/EncryptHttp.js.map +1 -0
- package/lib/Environment.d.ts +45 -0
- package/lib/Environment.d.ts.map +1 -0
- package/lib/Environment.js +43 -0
- package/lib/Environment.js.map +1 -0
- package/lib/Errors.d.ts +18 -0
- package/lib/Errors.d.ts.map +1 -0
- package/lib/Errors.js +13 -0
- package/lib/Errors.js.map +1 -0
- package/lib/Exec.d.ts +41 -0
- package/lib/Exec.d.ts.map +1 -0
- package/lib/Exec.js +3 -0
- package/lib/Exec.js.map +1 -0
- package/lib/ExecHttp.d.ts +22 -0
- package/lib/ExecHttp.d.ts.map +1 -0
- package/lib/ExecHttp.js +39 -0
- package/lib/ExecHttp.js.map +1 -0
- package/lib/GetObject.d.ts +34 -0
- package/lib/GetObject.d.ts.map +1 -0
- package/lib/GetObject.js +3 -0
- package/lib/GetObject.js.map +1 -0
- package/lib/GetObjectHttp.d.ts +12 -0
- package/lib/GetObjectHttp.d.ts.map +1 -0
- package/lib/GetObjectHttp.js +17 -0
- package/lib/GetObjectHttp.js.map +1 -0
- package/lib/GetSecret.d.ts +44 -0
- package/lib/GetSecret.d.ts.map +1 -0
- package/lib/GetSecret.js +3 -0
- package/lib/GetSecret.js.map +1 -0
- package/lib/GetSecretHttp.d.ts +22 -0
- package/lib/GetSecretHttp.d.ts.map +1 -0
- package/lib/GetSecretHttp.js +50 -0
- package/lib/GetSecretHttp.js.map +1 -0
- package/lib/HeadObject.d.ts +29 -0
- package/lib/HeadObject.d.ts.map +1 -0
- package/lib/HeadObject.js +3 -0
- package/lib/HeadObject.js.map +1 -0
- package/lib/HeadObjectHttp.d.ts +12 -0
- package/lib/HeadObjectHttp.d.ts.map +1 -0
- package/lib/HeadObjectHttp.js +17 -0
- package/lib/HeadObjectHttp.js.map +1 -0
- package/lib/IpAssignment.d.ts +258 -0
- package/lib/IpAssignment.d.ts.map +1 -0
- package/lib/IpAssignment.js +376 -0
- package/lib/IpAssignment.js.map +1 -0
- package/lib/ListObjectsV2.d.ts +29 -0
- package/lib/ListObjectsV2.d.ts.map +1 -0
- package/lib/ListObjectsV2.js +3 -0
- package/lib/ListObjectsV2.js.map +1 -0
- package/lib/ListObjectsV2Http.d.ts +12 -0
- package/lib/ListObjectsV2Http.d.ts.map +1 -0
- package/lib/ListObjectsV2Http.js +17 -0
- package/lib/ListObjectsV2Http.js.map +1 -0
- package/lib/ListSecrets.d.ts +53 -0
- package/lib/ListSecrets.d.ts.map +1 -0
- package/lib/ListSecrets.js +3 -0
- package/lib/ListSecrets.js.map +1 -0
- package/lib/ListSecretsHttp.d.ts +22 -0
- package/lib/ListSecretsHttp.d.ts.map +1 -0
- package/lib/ListSecretsHttp.js +35 -0
- package/lib/ListSecretsHttp.js.map +1 -0
- package/lib/Machine.d.ts +802 -0
- package/lib/Machine.d.ts.map +1 -0
- package/lib/Machine.js +773 -0
- package/lib/Machine.js.map +1 -0
- package/lib/MachineContainers.d.ts +44 -0
- package/lib/MachineContainers.d.ts.map +1 -0
- package/lib/MachineContainers.js +115 -0
- package/lib/MachineContainers.js.map +1 -0
- package/lib/Metadata.d.ts +109 -0
- package/lib/Metadata.d.ts.map +1 -0
- package/lib/Metadata.js +159 -0
- package/lib/Metadata.js.map +1 -0
- package/lib/MountVolume.d.ts +295 -0
- package/lib/MountVolume.d.ts.map +1 -0
- package/lib/MountVolume.js +20 -0
- package/lib/MountVolume.js.map +1 -0
- package/lib/Postgres.d.ts +298 -0
- package/lib/Postgres.d.ts.map +1 -0
- package/lib/Postgres.js +508 -0
- package/lib/Postgres.js.map +1 -0
- package/lib/PostgresMigrations.d.ts +35 -0
- package/lib/PostgresMigrations.d.ts.map +1 -0
- package/lib/PostgresMigrations.js +110 -0
- package/lib/PostgresMigrations.js.map +1 -0
- package/lib/Providers.d.ts +38 -0
- package/lib/Providers.d.ts.map +1 -0
- package/lib/Providers.js +95 -0
- package/lib/Providers.js.map +1 -0
- package/lib/PutObject.d.ts +35 -0
- package/lib/PutObject.d.ts.map +1 -0
- package/lib/PutObject.js +3 -0
- package/lib/PutObject.js.map +1 -0
- package/lib/PutObjectHttp.d.ts +12 -0
- package/lib/PutObjectHttp.d.ts.map +1 -0
- package/lib/PutObjectHttp.js +17 -0
- package/lib/PutObjectHttp.js.map +1 -0
- package/lib/ReadRedis.d.ts +26 -0
- package/lib/ReadRedis.d.ts.map +1 -0
- package/lib/ReadRedis.js +3 -0
- package/lib/ReadRedis.js.map +1 -0
- package/lib/ReadRedisHttp.d.ts +11 -0
- package/lib/ReadRedisHttp.d.ts.map +1 -0
- package/lib/ReadRedisHttp.js +15 -0
- package/lib/ReadRedisHttp.js.map +1 -0
- package/lib/ReadWriteRedis.d.ts +29 -0
- package/lib/ReadWriteRedis.d.ts.map +1 -0
- package/lib/ReadWriteRedis.js +3 -0
- package/lib/ReadWriteRedis.js.map +1 -0
- package/lib/ReadWriteRedisHttp.d.ts +11 -0
- package/lib/ReadWriteRedisHttp.d.ts.map +1 -0
- package/lib/ReadWriteRedisHttp.js +15 -0
- package/lib/ReadWriteRedisHttp.js.map +1 -0
- package/lib/Redis.d.ts +252 -0
- package/lib/Redis.d.ts.map +1 -0
- package/lib/Redis.js +608 -0
- package/lib/Redis.js.map +1 -0
- package/lib/RedisBinding.d.ts +7 -0
- package/lib/RedisBinding.d.ts.map +1 -0
- package/lib/RedisBinding.js +53 -0
- package/lib/RedisBinding.js.map +1 -0
- package/lib/RedisHttp.d.ts +8 -0
- package/lib/RedisHttp.d.ts.map +1 -0
- package/lib/RedisHttp.js +8 -0
- package/lib/RedisHttp.js.map +1 -0
- package/lib/Region.d.ts +16 -0
- package/lib/Region.d.ts.map +1 -0
- package/lib/Region.js +13 -0
- package/lib/Region.js.map +1 -0
- package/lib/Secret.d.ts +190 -0
- package/lib/Secret.d.ts.map +1 -0
- package/lib/Secret.js +310 -0
- package/lib/Secret.js.map +1 -0
- package/lib/SecretHttp.d.ts +54 -0
- package/lib/SecretHttp.d.ts.map +1 -0
- package/lib/SecretHttp.js +66 -0
- package/lib/SecretHttp.js.map +1 -0
- package/lib/SecretKey.d.ts +164 -0
- package/lib/SecretKey.d.ts.map +1 -0
- package/lib/SecretKey.js +277 -0
- package/lib/SecretKey.js.map +1 -0
- package/lib/SecretKeyHttp.d.ts +14 -0
- package/lib/SecretKeyHttp.d.ts.map +1 -0
- package/lib/SecretKeyHttp.js +5 -0
- package/lib/SecretKeyHttp.js.map +1 -0
- package/lib/Service.d.ts +1022 -0
- package/lib/Service.d.ts.map +1 -0
- package/lib/Service.js +1397 -0
- package/lib/Service.js.map +1 -0
- package/lib/Sign.d.ts +36 -0
- package/lib/Sign.d.ts.map +1 -0
- package/lib/Sign.js +3 -0
- package/lib/Sign.js.map +1 -0
- package/lib/SignHttp.d.ts +22 -0
- package/lib/SignHttp.d.ts.map +1 -0
- package/lib/SignHttp.js +36 -0
- package/lib/SignHttp.js.map +1 -0
- package/lib/Sprite.d.ts +283 -0
- package/lib/Sprite.d.ts.map +1 -0
- package/lib/Sprite.js +469 -0
- package/lib/Sprite.js.map +1 -0
- package/lib/SpriteHttp.d.ts +25 -0
- package/lib/SpriteHttp.d.ts.map +1 -0
- package/lib/SpriteHttp.js +33 -0
- package/lib/SpriteHttp.js.map +1 -0
- package/lib/Verify.d.ts +37 -0
- package/lib/Verify.d.ts.map +1 -0
- package/lib/Verify.js +3 -0
- package/lib/Verify.js.map +1 -0
- package/lib/VerifyHttp.d.ts +22 -0
- package/lib/VerifyHttp.d.ts.map +1 -0
- package/lib/VerifyHttp.js +38 -0
- package/lib/VerifyHttp.js.map +1 -0
- package/lib/Volume.d.ts +53 -0
- package/lib/Volume.d.ts.map +1 -0
- package/lib/Volume.js +188 -0
- package/lib/Volume.js.map +1 -0
- package/lib/VolumeSnapshot.d.ts +135 -0
- package/lib/VolumeSnapshot.d.ts.map +1 -0
- package/lib/VolumeSnapshot.js +213 -0
- package/lib/VolumeSnapshot.js.map +1 -0
- package/lib/Website/AssetDeployment.d.ts +43 -0
- package/lib/Website/AssetDeployment.d.ts.map +1 -0
- package/lib/Website/AssetDeployment.js +162 -0
- package/lib/Website/AssetDeployment.js.map +1 -0
- package/lib/Website/Astro.d.ts +87 -0
- package/lib/Website/Astro.d.ts.map +1 -0
- package/lib/Website/Astro.js +55 -0
- package/lib/Website/Astro.js.map +1 -0
- package/lib/Website/Foldkit.d.ts +52 -0
- package/lib/Website/Foldkit.d.ts.map +1 -0
- package/lib/Website/Foldkit.js +45 -0
- package/lib/Website/Foldkit.js.map +1 -0
- package/lib/Website/FrameworkSite.d.ts +175 -0
- package/lib/Website/FrameworkSite.d.ts.map +1 -0
- package/lib/Website/FrameworkSite.js +162 -0
- package/lib/Website/FrameworkSite.js.map +1 -0
- package/lib/Website/Nextjs.d.ts +54 -0
- package/lib/Website/Nextjs.d.ts.map +1 -0
- package/lib/Website/Nextjs.js +46 -0
- package/lib/Website/Nextjs.js.map +1 -0
- package/lib/Website/Nuxt.d.ts +51 -0
- package/lib/Website/Nuxt.d.ts.map +1 -0
- package/lib/Website/Nuxt.js +36 -0
- package/lib/Website/Nuxt.js.map +1 -0
- package/lib/Website/Octane.d.ts +49 -0
- package/lib/Website/Octane.d.ts.map +1 -0
- package/lib/Website/Octane.js +39 -0
- package/lib/Website/Octane.js.map +1 -0
- package/lib/Website/ReactRouter.d.ts +80 -0
- package/lib/Website/ReactRouter.d.ts.map +1 -0
- package/lib/Website/ReactRouter.js +70 -0
- package/lib/Website/ReactRouter.js.map +1 -0
- package/lib/Website/SolidStart.d.ts +93 -0
- package/lib/Website/SolidStart.d.ts.map +1 -0
- package/lib/Website/SolidStart.js +71 -0
- package/lib/Website/SolidStart.js.map +1 -0
- package/lib/Website/StaticSite.d.ts +155 -0
- package/lib/Website/StaticSite.d.ts.map +1 -0
- package/lib/Website/StaticSite.js +168 -0
- package/lib/Website/StaticSite.js.map +1 -0
- package/lib/Website/SvelteKit.d.ts +52 -0
- package/lib/Website/SvelteKit.d.ts.map +1 -0
- package/lib/Website/SvelteKit.js +37 -0
- package/lib/Website/SvelteKit.js.map +1 -0
- package/lib/Website/TanStackStart.d.ts +76 -0
- package/lib/Website/TanStackStart.d.ts.map +1 -0
- package/lib/Website/TanStackStart.js +66 -0
- package/lib/Website/TanStackStart.js.map +1 -0
- package/lib/Website/Vinext.d.ts +73 -0
- package/lib/Website/Vinext.d.ts.map +1 -0
- package/lib/Website/Vinext.js +67 -0
- package/lib/Website/Vinext.js.map +1 -0
- package/lib/Website/Vite.d.ts +103 -0
- package/lib/Website/Vite.d.ts.map +1 -0
- package/lib/Website/Vite.js +91 -0
- package/lib/Website/Vite.js.map +1 -0
- package/lib/Website/Vocs.d.ts +52 -0
- package/lib/Website/Vocs.d.ts.map +1 -0
- package/lib/Website/Vocs.js +38 -0
- package/lib/Website/Vocs.js.map +1 -0
- package/lib/Website/Waku.d.ts +64 -0
- package/lib/Website/Waku.d.ts.map +1 -0
- package/lib/Website/Waku.js +39 -0
- package/lib/Website/Waku.js.map +1 -0
- package/lib/Website/index.d.ts +17 -0
- package/lib/Website/index.d.ts.map +1 -0
- package/lib/Website/index.js +17 -0
- package/lib/Website/index.js.map +1 -0
- package/lib/WriteCertificates.d.ts +63 -0
- package/lib/WriteCertificates.d.ts.map +1 -0
- package/lib/WriteCertificates.js +3 -0
- package/lib/WriteCertificates.js.map +1 -0
- package/lib/WriteCertificatesHttp.d.ts +25 -0
- package/lib/WriteCertificatesHttp.d.ts.map +1 -0
- package/lib/WriteCertificatesHttp.js +67 -0
- package/lib/WriteCertificatesHttp.js.map +1 -0
- package/lib/WriteRedis.d.ts +26 -0
- package/lib/WriteRedis.d.ts.map +1 -0
- package/lib/WriteRedis.js +3 -0
- package/lib/WriteRedis.js.map +1 -0
- package/lib/WriteRedisHttp.d.ts +11 -0
- package/lib/WriteRedisHttp.d.ts.map +1 -0
- package/lib/WriteRedisHttp.js +15 -0
- package/lib/WriteRedisHttp.js.map +1 -0
- package/lib/WriteSecret.d.ts +68 -0
- package/lib/WriteSecret.d.ts.map +1 -0
- package/lib/WriteSecret.js +4 -0
- package/lib/WriteSecret.js.map +1 -0
- package/lib/WriteSecretHttp.d.ts +26 -0
- package/lib/WriteSecretHttp.d.ts.map +1 -0
- package/lib/WriteSecretHttp.js +54 -0
- package/lib/WriteSecretHttp.js.map +1 -0
- package/lib/bluegreen.d.ts +36 -0
- package/lib/bluegreen.d.ts.map +1 -0
- package/lib/bluegreen.js +458 -0
- package/lib/bluegreen.js.map +1 -0
- package/lib/hosted.d.ts +172 -0
- package/lib/hosted.d.ts.map +1 -0
- package/lib/hosted.js +458 -0
- package/lib/hosted.js.map +1 -0
- package/lib/index.d.ts +65 -0
- package/lib/index.d.ts.map +1 -0
- package/lib/index.js +63 -0
- package/lib/index.js.map +1 -0
- package/lib/internal/RemoteBuilder.d.ts +28 -0
- package/lib/internal/RemoteBuilder.d.ts.map +1 -0
- package/lib/internal/RemoteBuilder.js +145 -0
- package/lib/internal/RemoteBuilder.js.map +1 -0
- package/lib/leases.d.ts +53 -0
- package/lib/leases.d.ts.map +1 -0
- package/lib/leases.js +279 -0
- package/lib/leases.js.map +1 -0
- package/lib/ports.d.ts +51 -0
- package/lib/ports.d.ts.map +1 -0
- package/lib/ports.js +123 -0
- package/lib/ports.js.map +1 -0
- package/lib/replicas.d.ts +270 -0
- package/lib/replicas.d.ts.map +1 -0
- package/lib/replicas.js +969 -0
- package/lib/replicas.js.map +1 -0
- package/lib/rpc.d.ts +35 -0
- package/lib/rpc.d.ts.map +1 -0
- package/lib/rpc.js +113 -0
- package/lib/rpc.js.map +1 -0
- package/package.json +83 -3
- package/src/App.ts +516 -0
- package/src/AuthProvider.ts +68 -0
- package/src/BindService.ts +304 -0
- package/src/Bootstrap.ts +66 -0
- package/src/Bucket.ts +916 -0
- package/src/BucketBinding.ts +128 -0
- package/src/Catalog.ts +43 -0
- package/src/Certificate.ts +548 -0
- package/src/Checkpoint.ts +69 -0
- package/src/CheckpointHttp.ts +66 -0
- package/src/ConnectPostgres.ts +68 -0
- package/src/ConnectPostgresHttp.ts +77 -0
- package/src/Contributions.ts +9 -0
- package/src/Credentials.ts +102 -0
- package/src/Decrypt.ts +62 -0
- package/src/DecryptHttp.ts +52 -0
- package/src/DeleteObject.ts +43 -0
- package/src/DeleteObjectHttp.ts +20 -0
- package/src/Deployment.ts +121 -0
- package/src/DeploymentImages.ts +84 -0
- package/src/DeploymentState.ts +104 -0
- package/src/Encrypt.ts +60 -0
- package/src/EncryptHttp.ts +48 -0
- package/src/Environment.ts +81 -0
- package/src/Errors.ts +14 -0
- package/src/Exec.ts +50 -0
- package/src/ExecHttp.ts +47 -0
- package/src/GetObject.ts +48 -0
- package/src/GetObjectHttp.ts +20 -0
- package/src/GetSecret.ts +48 -0
- package/src/GetSecretHttp.ts +60 -0
- package/src/HeadObject.ts +43 -0
- package/src/HeadObjectHttp.ts +20 -0
- package/src/IpAssignment.ts +522 -0
- package/src/ListObjectsV2.ts +43 -0
- package/src/ListObjectsV2Http.ts +20 -0
- package/src/ListSecrets.ts +57 -0
- package/src/ListSecretsHttp.ts +43 -0
- package/src/Machine.ts +1268 -0
- package/src/MachineContainers.ts +152 -0
- package/src/Metadata.ts +195 -0
- package/src/MountVolume.ts +315 -0
- package/src/Postgres.ts +777 -0
- package/src/PostgresMigrations.ts +153 -0
- package/src/Providers.ts +155 -0
- package/src/PutObject.ts +49 -0
- package/src/PutObjectHttp.ts +20 -0
- package/src/ReadRedis.ts +31 -0
- package/src/ReadRedisHttp.ts +18 -0
- package/src/ReadWriteRedis.ts +33 -0
- package/src/ReadWriteRedisHttp.ts +18 -0
- package/src/Redis.ts +820 -0
- package/src/RedisBinding.ts +64 -0
- package/src/RedisHttp.ts +11 -0
- package/src/Region.ts +44 -0
- package/src/Secret.ts +405 -0
- package/src/SecretHttp.ts +149 -0
- package/src/SecretKey.ts +389 -0
- package/src/SecretKeyHttp.ts +23 -0
- package/src/Service.ts +1934 -0
- package/src/Sign.ts +46 -0
- package/src/SignHttp.ts +44 -0
- package/src/Sprite.ts +671 -0
- package/src/SpriteHttp.ts +50 -0
- package/src/Verify.ts +47 -0
- package/src/VerifyHttp.ts +46 -0
- package/src/Volume.ts +264 -0
- package/src/VolumeSnapshot.ts +321 -0
- package/src/Website/AssetDeployment.ts +294 -0
- package/src/Website/Astro.ts +87 -0
- package/src/Website/Foldkit.ts +54 -0
- package/src/Website/FrameworkSite.ts +363 -0
- package/src/Website/Nextjs.ts +50 -0
- package/src/Website/Nuxt.ts +48 -0
- package/src/Website/Octane.ts +44 -0
- package/src/Website/ReactRouter.ts +76 -0
- package/src/Website/SolidStart.ts +90 -0
- package/src/Website/StaticSite.ts +275 -0
- package/src/Website/SvelteKit.ts +49 -0
- package/src/Website/TanStackStart.ts +72 -0
- package/src/Website/Vinext.ts +79 -0
- package/src/Website/Vite.ts +112 -0
- package/src/Website/Vocs.ts +50 -0
- package/src/Website/Waku.ts +65 -0
- package/src/Website/index.ts +16 -0
- package/src/WriteCertificates.ts +90 -0
- package/src/WriteCertificatesHttp.ts +93 -0
- package/src/WriteRedis.ts +31 -0
- package/src/WriteRedisHttp.ts +18 -0
- package/src/WriteSecret.ts +86 -0
- package/src/WriteSecretHttp.ts +71 -0
- package/src/bluegreen.ts +708 -0
- package/src/globals.d.ts +2 -0
- package/src/hosted.ts +668 -0
- package/src/index.ts +64 -0
- package/src/internal/RemoteBuilder.ts +224 -0
- package/src/leases.ts +437 -0
- package/src/ports.ts +177 -0
- package/src/replicas.ts +1480 -0
- package/src/rpc.ts +136 -0
|
@@ -0,0 +1,295 @@
|
|
|
1
|
+
import * as Binding from "alchemy/Binding";
|
|
2
|
+
import * as Effect from "effect/Effect";
|
|
3
|
+
import * as Layer from "effect/Layer";
|
|
4
|
+
/**
|
|
5
|
+
* Spec for a per-replica Fly disk. Fly Volumes cannot be shared —
|
|
6
|
+
* `count` Machines get `count` Volumes in one name-group.
|
|
7
|
+
*/
|
|
8
|
+
export interface DiskSpec {
|
|
9
|
+
/**
|
|
10
|
+
* Absolute path inside the Machine the disk is mounted at
|
|
11
|
+
* (e.g. `/data`).
|
|
12
|
+
*/
|
|
13
|
+
path: string;
|
|
14
|
+
/**
|
|
15
|
+
* Size in GB. Fly minimum is 1. Increasing size updates in place
|
|
16
|
+
* via `extendVolume`. Fly cannot shrink a Volume.
|
|
17
|
+
*/
|
|
18
|
+
sizeGb: number;
|
|
19
|
+
/**
|
|
20
|
+
* Encrypt the Volume at rest. Create-only.
|
|
21
|
+
*/
|
|
22
|
+
encrypted?: boolean;
|
|
23
|
+
/**
|
|
24
|
+
* Filesystem type (`ext4`, …). Create-only.
|
|
25
|
+
*/
|
|
26
|
+
fstype?: string;
|
|
27
|
+
/**
|
|
28
|
+
* Enable scheduled automatic snapshots.
|
|
29
|
+
*
|
|
30
|
+
* @default true
|
|
31
|
+
*/
|
|
32
|
+
autoBackupEnabled?: boolean;
|
|
33
|
+
/**
|
|
34
|
+
* Snapshot retention in days. Updated in place via `updateVolume`.
|
|
35
|
+
*/
|
|
36
|
+
snapshotRetention?: number;
|
|
37
|
+
/**
|
|
38
|
+
* Restore from an existing snapshot. Create-only.
|
|
39
|
+
*/
|
|
40
|
+
snapshotId?: string;
|
|
41
|
+
/**
|
|
42
|
+
* Fork from an existing volume. Create-only.
|
|
43
|
+
*/
|
|
44
|
+
sourceVolumeId?: string;
|
|
45
|
+
/**
|
|
46
|
+
* Require the Volume to land in a unique zone. Create-only.
|
|
47
|
+
*/
|
|
48
|
+
requireUniqueZone?: boolean;
|
|
49
|
+
/**
|
|
50
|
+
* Fly volume-group name. If omitted, a unique name is generated
|
|
51
|
+
* from the host's logical ID and {@link path}.
|
|
52
|
+
*/
|
|
53
|
+
name?: string;
|
|
54
|
+
}
|
|
55
|
+
export interface MountVolumeOptions extends DiskSpec {
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* Runtime view of a disk mounted into a {@link Service}: the path
|
|
59
|
+
* inside the Machine.
|
|
60
|
+
*/
|
|
61
|
+
export interface MountedVolume {
|
|
62
|
+
/** Mount path inside the Machine (same value as {@link DiskSpec.path}). */
|
|
63
|
+
path: string;
|
|
64
|
+
}
|
|
65
|
+
/**
|
|
66
|
+
* Observed disk attached to a Machine / Service replica.
|
|
67
|
+
*/
|
|
68
|
+
export interface MountedDisk {
|
|
69
|
+
/** Mount path inside the Machine. */
|
|
70
|
+
path: string;
|
|
71
|
+
/** Fly Volume id. */
|
|
72
|
+
volumeId: string;
|
|
73
|
+
/** Size in GB. */
|
|
74
|
+
sizeGb: number;
|
|
75
|
+
/** Fly volume-group name. */
|
|
76
|
+
name: string;
|
|
77
|
+
}
|
|
78
|
+
/**
|
|
79
|
+
* Binding contract accepted by {@link Service} (and Machine) for mounted
|
|
80
|
+
* disks and injected env.
|
|
81
|
+
*/
|
|
82
|
+
export interface ServiceBinding {
|
|
83
|
+
env?: Record<string, any>;
|
|
84
|
+
mounts?: DiskSpec[];
|
|
85
|
+
/**
|
|
86
|
+
* Upstash Redis add-on to attach. Redis HTTP bindings write
|
|
87
|
+
* `REDIS_URL` as an App secret during Service reconcile.
|
|
88
|
+
*/
|
|
89
|
+
redis?: {
|
|
90
|
+
name: string;
|
|
91
|
+
id?: string;
|
|
92
|
+
};
|
|
93
|
+
/**
|
|
94
|
+
* Tigris bucket to attach. Object HTTP bindings write `AWS_*` /
|
|
95
|
+
* `BUCKET_NAME` as App secrets during Service reconcile.
|
|
96
|
+
*/
|
|
97
|
+
bucket?: {
|
|
98
|
+
name: string;
|
|
99
|
+
id?: string;
|
|
100
|
+
};
|
|
101
|
+
/**
|
|
102
|
+
* Managed Postgres cluster to attach. `Fly.ConnectPostgres` records
|
|
103
|
+
* the MPG attachment during Service reconcile. Connection URIs travel
|
|
104
|
+
* as Outputs (`yield* postgres.connectionUri`), not bind env.
|
|
105
|
+
*/
|
|
106
|
+
postgres?: {
|
|
107
|
+
clusterId: string;
|
|
108
|
+
variableName?: string;
|
|
109
|
+
};
|
|
110
|
+
/**
|
|
111
|
+
* Another Service this one calls, recorded by `Fly.bindService` and
|
|
112
|
+
* `Fly.bindEndpoint`. Service reconcile checks the target is reachable
|
|
113
|
+
* from this Service's network and, for an endpoint, that the port is
|
|
114
|
+
* published.
|
|
115
|
+
*/
|
|
116
|
+
target?: BoundTarget;
|
|
117
|
+
}
|
|
118
|
+
/** A Service bound by `Fly.bindService` or `Fly.bindEndpoint`. */
|
|
119
|
+
export interface BoundTarget {
|
|
120
|
+
/** Logical id of the bound Service. */
|
|
121
|
+
service: string;
|
|
122
|
+
/** Fly App the bound Service runs in. */
|
|
123
|
+
appName: string;
|
|
124
|
+
/** Private network of that App. `undefined` for the default network. */
|
|
125
|
+
network: string | undefined;
|
|
126
|
+
/** The bound Service's private address; `undefined` when it publishes nothing. */
|
|
127
|
+
privateUrl: string | undefined;
|
|
128
|
+
/** The bound Service's caller token. */
|
|
129
|
+
rpcToken?: import("effect/Redacted").Redacted<string>;
|
|
130
|
+
/** Port `Fly.bindEndpoint` targets; the binding port for `bindService`. */
|
|
131
|
+
port?: number;
|
|
132
|
+
/** Ports the bound Service publishes, for `Fly.bindEndpoint`. */
|
|
133
|
+
endpoints?: Array<{
|
|
134
|
+
port: number;
|
|
135
|
+
handlers: string[];
|
|
136
|
+
}>;
|
|
137
|
+
}
|
|
138
|
+
/**
|
|
139
|
+
* Create a per-replica Fly Volume and mount it into a {@link Service}.
|
|
140
|
+
*
|
|
141
|
+
* There is no standalone Volume resource. From a {@link Machine}, pass
|
|
142
|
+
* `mounts: [{ path, sizeGb }]` instead.
|
|
143
|
+
*
|
|
144
|
+
*
|
|
145
|
+
* ### Mount into a Service
|
|
146
|
+
* Yield `MountVolume` inside init. App and region come from the
|
|
147
|
+
* parent Service. Provide {@link MountVolumeLive}. At runtime you get
|
|
148
|
+
* `disk.path`.
|
|
149
|
+
*
|
|
150
|
+
* A Volume attaches to one Machine. `count: 3` creates three Volumes
|
|
151
|
+
* in one name-group, one per replica.
|
|
152
|
+
*
|
|
153
|
+
* **Example:** Bind a path
|
|
154
|
+
* ```typescript
|
|
155
|
+
* export default class Api extends Fly.Service<Api>()(
|
|
156
|
+
* "Api",
|
|
157
|
+
* { app: Site, main: import.meta.url, region: "iad", count: 3, port: 3000 },
|
|
158
|
+
* Effect.gen(function* () {
|
|
159
|
+
* const disk = yield* Fly.MountVolume({ path: "/data", sizeGb: 1 });
|
|
160
|
+
* const fs = yield* FileSystem.FileSystem;
|
|
161
|
+
* return {
|
|
162
|
+
* fetch: Effect.gen(function* () {
|
|
163
|
+
* const text = yield* fs.readFileString(`${disk.path}/hello.txt`);
|
|
164
|
+
* return HttpServerResponse.text(text);
|
|
165
|
+
* }),
|
|
166
|
+
* };
|
|
167
|
+
* }).pipe(Effect.provide(Fly.MountVolumeLive)),
|
|
168
|
+
* ) {}
|
|
169
|
+
* ```
|
|
170
|
+
*
|
|
171
|
+
* ### Grow a disk
|
|
172
|
+
* `sizeGb` can grow in place via `extendVolume`. Fly cannot shrink a
|
|
173
|
+
* Volume. Minimum size is 1 GB.
|
|
174
|
+
*
|
|
175
|
+
* **Example:** 10 GB
|
|
176
|
+
* ```typescript
|
|
177
|
+
* const disk = yield* Fly.MountVolume({ path: "/data", sizeGb: 10 });
|
|
178
|
+
* ```
|
|
179
|
+
*
|
|
180
|
+
* ### Encryption
|
|
181
|
+
* `encrypted` encrypts the Volume at rest.
|
|
182
|
+
*
|
|
183
|
+
* **Example:** Encrypted
|
|
184
|
+
* ```typescript
|
|
185
|
+
* const disk = yield* Fly.MountVolume({
|
|
186
|
+
* path: "/data",
|
|
187
|
+
* sizeGb: 1,
|
|
188
|
+
* encrypted: true,
|
|
189
|
+
* });
|
|
190
|
+
* ```
|
|
191
|
+
*
|
|
192
|
+
* :::note[Create-only]
|
|
193
|
+
* Flipping `encrypted` later is ignored.
|
|
194
|
+
* :::
|
|
195
|
+
*
|
|
196
|
+
* ### Filesystem
|
|
197
|
+
* `fstype` is the filesystem (`ext4`, …).
|
|
198
|
+
*
|
|
199
|
+
* **Example:** ext4
|
|
200
|
+
* ```typescript
|
|
201
|
+
* const disk = yield* Fly.MountVolume({
|
|
202
|
+
* path: "/data",
|
|
203
|
+
* sizeGb: 1,
|
|
204
|
+
* fstype: "ext4",
|
|
205
|
+
* });
|
|
206
|
+
* ```
|
|
207
|
+
*
|
|
208
|
+
* :::note[Create-only]
|
|
209
|
+
* Flipping `fstype` later is ignored.
|
|
210
|
+
* :::
|
|
211
|
+
*
|
|
212
|
+
* ### Scheduled snapshots
|
|
213
|
+
* Scheduled snapshots default on (`autoBackupEnabled`).
|
|
214
|
+
* `snapshotRetention` is days and updates in place. An on-demand
|
|
215
|
+
* snapshot is {@link VolumeSnapshot}.
|
|
216
|
+
*
|
|
217
|
+
* **Example:** Retention
|
|
218
|
+
* ```typescript
|
|
219
|
+
* const disk = yield* Fly.MountVolume({
|
|
220
|
+
* path: "/data",
|
|
221
|
+
* sizeGb: 1,
|
|
222
|
+
* autoBackupEnabled: true,
|
|
223
|
+
* snapshotRetention: 5,
|
|
224
|
+
* });
|
|
225
|
+
* ```
|
|
226
|
+
*
|
|
227
|
+
* ### Restore from a snapshot
|
|
228
|
+
* `snapshotId` restores into a new disk.
|
|
229
|
+
*
|
|
230
|
+
* **Example:** snapshotId
|
|
231
|
+
* ```typescript
|
|
232
|
+
* const disk = yield* Fly.MountVolume({
|
|
233
|
+
* path: "/data",
|
|
234
|
+
* sizeGb: 1,
|
|
235
|
+
* snapshotId: Nightly.snapshotId,
|
|
236
|
+
* });
|
|
237
|
+
* ```
|
|
238
|
+
*
|
|
239
|
+
* :::note[Create-only]
|
|
240
|
+
* Changing `snapshotId` later is ignored.
|
|
241
|
+
* :::
|
|
242
|
+
*
|
|
243
|
+
* ### Fork a volume
|
|
244
|
+
* `sourceVolumeId` forks from an existing Volume.
|
|
245
|
+
*
|
|
246
|
+
* **Example:** sourceVolumeId
|
|
247
|
+
* ```typescript
|
|
248
|
+
* const disk = yield* Fly.MountVolume({
|
|
249
|
+
* path: "/data",
|
|
250
|
+
* sizeGb: 1,
|
|
251
|
+
* sourceVolumeId: box.mounts[0].volumeId,
|
|
252
|
+
* });
|
|
253
|
+
* ```
|
|
254
|
+
*
|
|
255
|
+
* :::note[Create-only]
|
|
256
|
+
* Changing `sourceVolumeId` later is ignored.
|
|
257
|
+
* :::
|
|
258
|
+
*
|
|
259
|
+
* ### Unique zone
|
|
260
|
+
* `requireUniqueZone` asks Fly to land the Volume in a unique zone.
|
|
261
|
+
*
|
|
262
|
+
* **Example:** Unique zone
|
|
263
|
+
* ```typescript
|
|
264
|
+
* const disk = yield* Fly.MountVolume({
|
|
265
|
+
* path: "/data",
|
|
266
|
+
* sizeGb: 1,
|
|
267
|
+
* requireUniqueZone: true,
|
|
268
|
+
* });
|
|
269
|
+
* ```
|
|
270
|
+
*
|
|
271
|
+
* :::note[Create-only]
|
|
272
|
+
* Flipping `requireUniqueZone` later is ignored.
|
|
273
|
+
* :::
|
|
274
|
+
*
|
|
275
|
+
* ### Volume name
|
|
276
|
+
* `name` is the Fly volume-group name. If omitted, a unique name is
|
|
277
|
+
* generated from the host's logical ID and `path`.
|
|
278
|
+
*
|
|
279
|
+
* **Example:** Named group
|
|
280
|
+
* ```typescript
|
|
281
|
+
* const disk = yield* Fly.MountVolume({
|
|
282
|
+
* path: "/data",
|
|
283
|
+
* sizeGb: 1,
|
|
284
|
+
* name: "api_data",
|
|
285
|
+
* });
|
|
286
|
+
* ```
|
|
287
|
+
*
|
|
288
|
+
* @binding
|
|
289
|
+
* @product Volume
|
|
290
|
+
*/
|
|
291
|
+
export interface MountVolume extends Binding.Service<MountVolume, "Fly.MountVolume", (options: MountVolumeOptions) => Effect.Effect<MountedVolume>> {
|
|
292
|
+
}
|
|
293
|
+
export declare const MountVolume: MountVolume;
|
|
294
|
+
export declare const MountVolumeLive: Layer.Layer<MountVolume, never, never>;
|
|
295
|
+
//# sourceMappingURL=MountVolume.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MountVolume.d.ts","sourceRoot":"","sources":["../src/MountVolume.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,OAAO,MAAM,iBAAiB,CAAC;AAE3C,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AAEtC;;;GAGG;AACH,MAAM,WAAW,QAAQ;IACvB;;;OAGG;IACH,IAAI,EAAE,MAAM,CAAC;IACb;;;OAGG;IACH,MAAM,EAAE,MAAM,CAAC;IACf;;OAEG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;;;OAIG;IACH,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B;;OAEG;IACH,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B;;OAEG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;;OAEG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB;;OAEG;IACH,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B;;;OAGG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,kBAAmB,SAAQ,QAAQ;CAAG;AAEvD;;;GAGG;AACH,MAAM,WAAW,aAAa;IAC5B,2EAA2E;IAC3E,IAAI,EAAE,MAAM,CAAC;CACd;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,qCAAqC;IACrC,IAAI,EAAE,MAAM,CAAC;IACb,qBAAqB;IACrB,QAAQ,EAAE,MAAM,CAAC;IACjB,kBAAkB;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,6BAA6B;IAC7B,IAAI,EAAE,MAAM,CAAC;CACd;AAQD;;;GAGG;AACH,MAAM,WAAW,cAAc;IAC7B,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC1B,MAAM,CAAC,EAAE,QAAQ,EAAE,CAAC;IACpB;;;OAGG;IACH,KAAK,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,EAAE,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACtC;;;OAGG;IACH,MAAM,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,EAAE,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACvC;;;;OAIG;IACH,QAAQ,CAAC,EAAE;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,YAAY,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACxD;;;;;OAKG;IACH,MAAM,CAAC,EAAE,WAAW,CAAC;CACtB;AAED,kEAAkE;AAClE,MAAM,WAAW,WAAW;IAC1B,uCAAuC;IACvC,OAAO,EAAE,MAAM,CAAC;IAChB,yCAAyC;IACzC,OAAO,EAAE,MAAM,CAAC;IAChB,wEAAwE;IACxE,OAAO,EAAE,MAAM,GAAG,SAAS,CAAC;IAC5B,kFAAkF;IAClF,UAAU,EAAE,MAAM,GAAG,SAAS,CAAC;IAC/B,wCAAwC;IACxC,QAAQ,CAAC,EAAE,OAAO,iBAAiB,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;IACtD,2EAA2E;IAC3E,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,iEAAiE;IACjE,SAAS,CAAC,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC,CAAC;CACzD;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwJG;AACH,MAAM,WAAW,WAAY,SAAQ,OAAO,CAAC,OAAO,CAClD,WAAW,EACX,iBAAiB,EACjB,CAAC,OAAO,EAAE,kBAAkB,KAAK,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,CAC9D;CAAG;AAEJ,eAAO,MAAM,WAAW,aAAkD,CAAC;AAE3E,eAAO,MAAM,eAAe,wCAe3B,CAAC"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import * as Binding from "alchemy/Binding";
|
|
2
|
+
import * as Effect from "effect/Effect";
|
|
3
|
+
import * as Layer from "effect/Layer";
|
|
4
|
+
const isBindHost = (value) => typeof value === "object" &&
|
|
5
|
+
value !== null &&
|
|
6
|
+
(value.Type === "Fly.Service" ||
|
|
7
|
+
value.Type === "Fly.Machine");
|
|
8
|
+
export const MountVolume = Binding.Service("Fly.MountVolume");
|
|
9
|
+
export const MountVolumeLive = Layer.effect(MountVolume, Effect.succeed(Effect.fn(function* (options) {
|
|
10
|
+
if (!globalThis.__ALCHEMY_RUNTIME__) {
|
|
11
|
+
const host = yield* Binding.Host;
|
|
12
|
+
if (isBindHost(host)) {
|
|
13
|
+
yield* host.bind `Fly.MountVolume(${options.path})`({
|
|
14
|
+
mounts: [options],
|
|
15
|
+
});
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
return { path: options.path };
|
|
19
|
+
})));
|
|
20
|
+
//# sourceMappingURL=MountVolume.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MountVolume.js","sourceRoot":"","sources":["../src/MountVolume.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,OAAO,MAAM,iBAAiB,CAAC;AAE3C,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AA+EtC,MAAM,UAAU,GAAG,CAAC,KAAc,EAAuD,EAAE,CACzF,OAAO,KAAK,KAAK,QAAQ;IACzB,KAAK,KAAK,IAAI;IACd,CAAE,KAA2B,CAAC,IAAI,KAAK,aAAa;QACjD,KAA2B,CAAC,IAAI,KAAK,aAAa,CAAC,CAAC;AAmNzD,MAAM,CAAC,MAAM,WAAW,GAAG,OAAO,CAAC,OAAO,CAAc,iBAAiB,CAAC,CAAC;AAE3E,MAAM,CAAC,MAAM,eAAe,GAAG,KAAK,CAAC,MAAM,CACzC,WAAW,EACX,MAAM,CAAC,OAAO,CACZ,MAAM,CAAC,EAAE,CAAC,QAAQ,CAAC,EAAE,OAA2B;IAC9C,IAAI,CAAC,UAAU,CAAC,mBAAmB,EAAE,CAAC;QACpC,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC;QACjC,IAAI,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;YACrB,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,CAAA,mBAAmB,OAAO,CAAC,IAAI,GAAG,CAAC;gBACjD,MAAM,EAAE,CAAC,OAAO,CAAC;aAClB,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IACD,OAAO,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,CAAC;AAChC,CAAC,CAAC,CACH,CACF,CAAC"}
|
|
@@ -0,0 +1,298 @@
|
|
|
1
|
+
import { type MigrationsInput } from "@alchemy.run/sql/Migrations";
|
|
2
|
+
import * as machines from "@distilled.cloud/fly-io/machines";
|
|
3
|
+
import type { ClusterCredentials, GetClusterResponse, ManagedCluster } from "@distilled.cloud/fly-io/mpg";
|
|
4
|
+
import * as Provider from "alchemy/Provider";
|
|
5
|
+
import { Resource } from "alchemy/Resource";
|
|
6
|
+
import * as Effect from "effect/Effect";
|
|
7
|
+
import * as Redacted from "effect/Redacted";
|
|
8
|
+
import type { Providers } from "./Providers.ts";
|
|
9
|
+
export { stripSslQueryParams } from "./PostgresMigrations.ts";
|
|
10
|
+
export declare const DEFAULT_POSTGRES_PLAN = "basic";
|
|
11
|
+
export declare const DEFAULT_VOLUME_GB = 10;
|
|
12
|
+
export declare const DATABASE_URL_SECRET = "DATABASE_URL";
|
|
13
|
+
export declare const DIRECT_DATABASE_URL_SECRET = "DIRECT_DATABASE_URL";
|
|
14
|
+
export type PostgresPlan = "basic" | "starter" | "launch" | "scale" | "performance" | (string & {});
|
|
15
|
+
export interface PostgresProps {
|
|
16
|
+
/**
|
|
17
|
+
* Region the cluster lives in (`iad`, `ord`, `sjc`, …). Required.
|
|
18
|
+
* The cluster is regional; a {@link App} is global. Changing it
|
|
19
|
+
* replaces the cluster.
|
|
20
|
+
*/
|
|
21
|
+
region: string;
|
|
22
|
+
/**
|
|
23
|
+
* Hardware plan. `basic` is 2 shared vCPUs / 1 GB RAM.
|
|
24
|
+
*
|
|
25
|
+
* @default "basic"
|
|
26
|
+
*/
|
|
27
|
+
plan?: PostgresPlan;
|
|
28
|
+
/**
|
|
29
|
+
* Cluster name. Unique in the organization. If omitted, a unique
|
|
30
|
+
* name is generated from the stack, stage and logical ID. Changing
|
|
31
|
+
* it replaces the cluster.
|
|
32
|
+
*/
|
|
33
|
+
name?: string;
|
|
34
|
+
/**
|
|
35
|
+
* Organization slug. Defaults to the current token's org. Changing
|
|
36
|
+
* it replaces the cluster.
|
|
37
|
+
*/
|
|
38
|
+
orgSlug?: string;
|
|
39
|
+
/**
|
|
40
|
+
* Initial volume size in GB. Fly defaults to 10. Create-only.
|
|
41
|
+
*
|
|
42
|
+
* @default 10
|
|
43
|
+
*/
|
|
44
|
+
volumeSizeGb?: number;
|
|
45
|
+
/**
|
|
46
|
+
* Enable PostGIS. Create-only.
|
|
47
|
+
*
|
|
48
|
+
* @default false
|
|
49
|
+
*/
|
|
50
|
+
postgis?: boolean;
|
|
51
|
+
/**
|
|
52
|
+
* Postgres major version (`16` or `17`). Create-only.
|
|
53
|
+
*
|
|
54
|
+
* @default 16
|
|
55
|
+
*/
|
|
56
|
+
pgMajorVersion?: number | string;
|
|
57
|
+
/**
|
|
58
|
+
* SQL migrations to apply against the cluster. Accepts a directory
|
|
59
|
+
* path, a `Drizzle.Schema` resource, or `{ dir, table? }`.
|
|
60
|
+
*
|
|
61
|
+
* Bookkeeping always lives in Alchemy's `__alchemy_migrations` table. A
|
|
62
|
+
* database previously migrated by drizzle-kit or Prisma is adopted by a
|
|
63
|
+
* one-way conversion on first deploy: the old tool's applied history is
|
|
64
|
+
* copied into Alchemy's table and the old table is left frozen. No
|
|
65
|
+
* baselining required.
|
|
66
|
+
*
|
|
67
|
+
* Applied over the **direct** (non-PgBouncer) URI. Fly Managed Postgres
|
|
68
|
+
* is reachable on the org private network; deploy-time apply needs a
|
|
69
|
+
* route to that network (a WireGuard peer, `fly mpg proxy`, or a
|
|
70
|
+
* machine already on 6PN).
|
|
71
|
+
*/
|
|
72
|
+
migrations?: MigrationsInput;
|
|
73
|
+
/**
|
|
74
|
+
* Paths to additional `.sql` files to apply after migrations. Each file
|
|
75
|
+
* is hashed; only files whose contents change are re-applied on
|
|
76
|
+
* subsequent deploys.
|
|
77
|
+
*/
|
|
78
|
+
importFiles?: string[];
|
|
79
|
+
}
|
|
80
|
+
export type Postgres = Resource<"Fly.Postgres", PostgresProps, {
|
|
81
|
+
/** Fly Managed Postgres cluster id. */
|
|
82
|
+
clusterId: string;
|
|
83
|
+
/** Cluster name (unique in the org). */
|
|
84
|
+
name: string;
|
|
85
|
+
/** Observed status (`creating`, `ready`, `error`, `deleted`, …). */
|
|
86
|
+
status: string | undefined;
|
|
87
|
+
/** Region the cluster lives in. */
|
|
88
|
+
region: string;
|
|
89
|
+
/** Observed hardware plan. */
|
|
90
|
+
plan: string | undefined;
|
|
91
|
+
/** Organization slug. */
|
|
92
|
+
orgSlug: string | undefined;
|
|
93
|
+
/** Observed disk size in GB. */
|
|
94
|
+
disk: number | undefined;
|
|
95
|
+
/** Whether PostGIS is enabled. */
|
|
96
|
+
postgisEnabled: boolean | undefined;
|
|
97
|
+
/** Observed engine string, if the API returned one. */
|
|
98
|
+
engine: string | undefined;
|
|
99
|
+
/** Observed replica count. */
|
|
100
|
+
replicas: number | undefined;
|
|
101
|
+
/** Internal MPG cluster hash id, if the API returned one. */
|
|
102
|
+
mpgdClusterId: string | undefined;
|
|
103
|
+
/**
|
|
104
|
+
* Direct (non-PgBouncer) Postgres URI. Use this for migrations and
|
|
105
|
+
* session-scoped features. Pass to `Drizzle.Postgres` from a laptop
|
|
106
|
+
* Action; from a {@link Service} prefer {@link ConnectPostgres}.
|
|
107
|
+
*/
|
|
108
|
+
connectionUri: string;
|
|
109
|
+
/** Pooled PgBouncer URI. Prefer {@link ConnectPostgres} from a Service. */
|
|
110
|
+
pooledConnectionUri: string;
|
|
111
|
+
migrationsDir: string | undefined;
|
|
112
|
+
migrationsTable: string | undefined;
|
|
113
|
+
migrationsHashes: Record<string, string>;
|
|
114
|
+
importHashes: Record<string, string>;
|
|
115
|
+
}, never, Providers>;
|
|
116
|
+
/**
|
|
117
|
+
* A Fly.Postgres is a Managed Postgres (MPG) cluster. It is billed.
|
|
118
|
+
* Do not wrap unmanaged `fly postgres`.
|
|
119
|
+
*
|
|
120
|
+
* @see https://fly.io/docs/mpg/create-and-connect/
|
|
121
|
+
*
|
|
122
|
+
* ### Create a cluster
|
|
123
|
+
* `region` is required. Alchemy generates a unique name unless you
|
|
124
|
+
* pass one. Omit `name` in tests and CI.
|
|
125
|
+
*
|
|
126
|
+
* **Example:** Generated name
|
|
127
|
+
* ```typescript
|
|
128
|
+
* const db = yield* Fly.Postgres("Db", {
|
|
129
|
+
* region: "iad",
|
|
130
|
+
* });
|
|
131
|
+
* ```
|
|
132
|
+
*
|
|
133
|
+
* :::caution[Billed]
|
|
134
|
+
* Managed Postgres is billed. Basic is about $38 per month.
|
|
135
|
+
* :::
|
|
136
|
+
*
|
|
137
|
+
* ### Plan
|
|
138
|
+
* `plan` is the hardware size: `basic`, `starter`, `launch`,
|
|
139
|
+
* `scale`, `performance`. Default is `basic`.
|
|
140
|
+
*
|
|
141
|
+
* **Example:** Starter
|
|
142
|
+
* ```typescript
|
|
143
|
+
* const db = yield* Fly.Postgres("Db", {
|
|
144
|
+
* region: "iad",
|
|
145
|
+
* plan: "starter",
|
|
146
|
+
* });
|
|
147
|
+
* ```
|
|
148
|
+
*
|
|
149
|
+
* :::note[Create-only]
|
|
150
|
+
* Changing `plan` later is ignored. Fly has no cluster update API.
|
|
151
|
+
* :::
|
|
152
|
+
*
|
|
153
|
+
* ### Region
|
|
154
|
+
* The cluster is regional. An {@link App} is global. Pass `region`
|
|
155
|
+
* on the cluster, not on the App.
|
|
156
|
+
*
|
|
157
|
+
* **Example:** Pin a region
|
|
158
|
+
* ```typescript
|
|
159
|
+
* const db = yield* Fly.Postgres("Db", {
|
|
160
|
+
* region: "lhr",
|
|
161
|
+
* });
|
|
162
|
+
* ```
|
|
163
|
+
*
|
|
164
|
+
* :::caution[Changing `region` replaces the cluster]
|
|
165
|
+
* A new cluster is created in the new region. The old cluster is
|
|
166
|
+
* deleted. Data is not copied.
|
|
167
|
+
* :::
|
|
168
|
+
*
|
|
169
|
+
* ### Volume size
|
|
170
|
+
* `volumeSizeGb` is the initial disk. Fly defaults to 10 GB.
|
|
171
|
+
*
|
|
172
|
+
* **Example:** 20 GB
|
|
173
|
+
* ```typescript
|
|
174
|
+
* const db = yield* Fly.Postgres("Db", {
|
|
175
|
+
* region: "iad",
|
|
176
|
+
* volumeSizeGb: 20,
|
|
177
|
+
* });
|
|
178
|
+
* ```
|
|
179
|
+
*
|
|
180
|
+
* :::note[Create-only]
|
|
181
|
+
* Changing `volumeSizeGb` later is ignored.
|
|
182
|
+
* :::
|
|
183
|
+
*
|
|
184
|
+
* ### PostGIS
|
|
185
|
+
* `postgis: true` enables PostGIS at create.
|
|
186
|
+
*
|
|
187
|
+
* **Example:** Enable PostGIS
|
|
188
|
+
* ```typescript
|
|
189
|
+
* const db = yield* Fly.Postgres("Db", {
|
|
190
|
+
* region: "iad",
|
|
191
|
+
* postgis: true,
|
|
192
|
+
* });
|
|
193
|
+
* ```
|
|
194
|
+
*
|
|
195
|
+
* :::note[Create-only]
|
|
196
|
+
* Flipping `postgis` later is ignored.
|
|
197
|
+
* :::
|
|
198
|
+
*
|
|
199
|
+
* ### Connect from a Service
|
|
200
|
+
* Yield `ConnectPostgres` inside init. Provide
|
|
201
|
+
* {@link ConnectPostgresHttp}. Pass `conn.connectionString` to
|
|
202
|
+
* `Drizzle.Postgres` or `SQL.Postgres`.
|
|
203
|
+
*
|
|
204
|
+
* **Example:** Bind and query
|
|
205
|
+
* ```typescript
|
|
206
|
+
* import * as Drizzle from "@alchemy.run/drizzle/Postgres";
|
|
207
|
+
* import * as HttpServerResponse from "effect/http/HttpServerResponse";
|
|
208
|
+
*
|
|
209
|
+
* export default class Api extends Fly.Service<Api>()(
|
|
210
|
+
* "Api",
|
|
211
|
+
* { app: Site, main: import.meta.url, port: 3000 },
|
|
212
|
+
* Effect.gen(function* () {
|
|
213
|
+
* const conn = yield* Fly.ConnectPostgres(Db);
|
|
214
|
+
* const db = yield* Drizzle.Postgres(conn.connectionString);
|
|
215
|
+
* return {
|
|
216
|
+
* fetch: Effect.gen(function* () {
|
|
217
|
+
* const rows = yield* db.execute("select 1 as ok");
|
|
218
|
+
* return HttpServerResponse.json({ rows });
|
|
219
|
+
* }),
|
|
220
|
+
* };
|
|
221
|
+
* }).pipe(Effect.provide(Fly.ConnectPostgresHttp)),
|
|
222
|
+
* ) {}
|
|
223
|
+
* ```
|
|
224
|
+
*
|
|
225
|
+
* ### Migrations
|
|
226
|
+
* Pass a directory, `{ dir, table? }`, or a `Drizzle.Schema` resource.
|
|
227
|
+
* Alchemy applies pending files on deploy over the direct URI.
|
|
228
|
+
*
|
|
229
|
+
* **Example:** Directory
|
|
230
|
+
* ```typescript
|
|
231
|
+
* const db = yield* Fly.Postgres("Db", {
|
|
232
|
+
* region: "iad",
|
|
233
|
+
* migrations: "./migrations",
|
|
234
|
+
* });
|
|
235
|
+
* ```
|
|
236
|
+
*
|
|
237
|
+
* **Example:** Drizzle.Schema
|
|
238
|
+
* ```typescript
|
|
239
|
+
* const schema = yield* Drizzle.Schema("app-schema", {
|
|
240
|
+
* schema: "./src/schema.ts",
|
|
241
|
+
* out: "./migrations",
|
|
242
|
+
* });
|
|
243
|
+
*
|
|
244
|
+
* const db = yield* Fly.Postgres("Db", {
|
|
245
|
+
* region: "iad",
|
|
246
|
+
* migrations: schema,
|
|
247
|
+
* });
|
|
248
|
+
* ```
|
|
249
|
+
*
|
|
250
|
+
* @resource
|
|
251
|
+
* @product Postgres
|
|
252
|
+
*/
|
|
253
|
+
export declare const Postgres: import("alchemy/Resource").ResourceClass<Postgres>;
|
|
254
|
+
declare const PostgresNotCreated_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 & {
|
|
255
|
+
readonly _tag: "Fly.PostgresNotCreated";
|
|
256
|
+
} & Readonly<A>;
|
|
257
|
+
export declare class PostgresNotCreated extends PostgresNotCreated_base<{
|
|
258
|
+
name: string;
|
|
259
|
+
orgSlug: string;
|
|
260
|
+
}> {
|
|
261
|
+
}
|
|
262
|
+
declare const PostgresCreateFailed_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 & {
|
|
263
|
+
readonly _tag: "Fly.PostgresCreateFailed";
|
|
264
|
+
} & Readonly<A>;
|
|
265
|
+
export declare class PostgresCreateFailed extends PostgresCreateFailed_base<{
|
|
266
|
+
clusterId: string;
|
|
267
|
+
status: string;
|
|
268
|
+
}> {
|
|
269
|
+
}
|
|
270
|
+
declare const PostgresCredentialsMissing_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 & {
|
|
271
|
+
readonly _tag: "Fly.PostgresCredentialsMissing";
|
|
272
|
+
} & Readonly<A>;
|
|
273
|
+
export declare class PostgresCredentialsMissing extends PostgresCredentialsMissing_base<{
|
|
274
|
+
clusterId: string;
|
|
275
|
+
}> {
|
|
276
|
+
}
|
|
277
|
+
declare const PostgresAttachmentFailed_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 & {
|
|
278
|
+
readonly _tag: "Fly.PostgresAttachmentFailed";
|
|
279
|
+
} & Readonly<A>;
|
|
280
|
+
export declare class PostgresAttachmentFailed extends PostgresAttachmentFailed_base<{
|
|
281
|
+
clusterId: string;
|
|
282
|
+
appName: string;
|
|
283
|
+
}> {
|
|
284
|
+
}
|
|
285
|
+
export declare const isLiveCluster: (cluster: ManagedCluster | undefined) => cluster is ManagedCluster;
|
|
286
|
+
export declare const unwrapSensitive: (value: string | Redacted.Redacted<string> | undefined) => string | undefined;
|
|
287
|
+
export declare const getLiveCluster: (clusterId: string) => Effect.Effect<ManagedCluster | undefined, machines.FlyIoOpError, machines.FlyIoOpContext>;
|
|
288
|
+
export declare const getClusterResponse: (clusterId: string) => Effect.Effect<GetClusterResponse | undefined, machines.FlyIoOpError, machines.FlyIoOpContext>;
|
|
289
|
+
export declare const credentialsUri: (credentials: ClusterCredentials | undefined) => string | undefined;
|
|
290
|
+
export declare const directUri: (_cluster: ManagedCluster | undefined, credentials: ClusterCredentials | undefined) => string | undefined;
|
|
291
|
+
/**
|
|
292
|
+
* Write `DATABASE_URL` (and `DIRECT_DATABASE_URL` if present) onto an
|
|
293
|
+
* App and record the MPG attachment. Called from {@link Service}
|
|
294
|
+
* reconcile when {@link ConnectPostgres} binds a cluster.
|
|
295
|
+
*/
|
|
296
|
+
export declare const attachPostgresSecrets: (appName: string, clusterId: string, variableName?: string | undefined) => Effect.Effect<number | undefined, import("@distilled.cloud/fly-io").BadRequest | import("@distilled.cloud/fly-io").Conflict | import("@distilled.cloud/fly-io").Forbidden | import("@distilled.cloud/fly-io").NotFound | PostgresAttachmentFailed | PostgresCredentialsMissing | import("effect/Cause").TimeoutError | machines.FlyIoOpError, machines.FlyIoOpContext>;
|
|
297
|
+
export declare const PostgresProvider: () => import("effect/Layer").Layer<Provider.Provider<Postgres>, never, import("effect/FileSystem").FileSystem | import("effect/Path").Path | import("alchemy/Stack").Stack | import("alchemy/Stage").Stage | machines.FlyIoOpContext>;
|
|
298
|
+
//# sourceMappingURL=Postgres.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Postgres.d.ts","sourceRoot":"","sources":["../src/Postgres.ts"],"names":[],"mappings":"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"}
|