@intentius/chant-lexicon-render 0.53.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 +89 -0
- package/dist/catalog.d.ts +100 -0
- package/dist/catalog.d.ts.map +1 -0
- package/dist/codegen/docs-cli.d.ts +3 -0
- package/dist/codegen/docs-cli.d.ts.map +1 -0
- package/dist/codegen/docs.d.ts +21 -0
- package/dist/codegen/docs.d.ts.map +1 -0
- package/dist/codegen/generate-cli.d.ts +6 -0
- package/dist/codegen/generate-cli.d.ts.map +1 -0
- package/dist/codegen/generate-lexicon.d.ts +18 -0
- package/dist/codegen/generate-lexicon.d.ts.map +1 -0
- package/dist/codegen/generate-typescript.d.ts +12 -0
- package/dist/codegen/generate-typescript.d.ts.map +1 -0
- package/dist/codegen/generate.d.ts +15 -0
- package/dist/codegen/generate.d.ts.map +1 -0
- package/dist/codegen/naming.d.ts +14 -0
- package/dist/codegen/naming.d.ts.map +1 -0
- package/dist/codegen/package.d.ts +17 -0
- package/dist/codegen/package.d.ts.map +1 -0
- package/dist/composites/render-deploy.d.ts +88 -0
- package/dist/composites/render-deploy.d.ts.map +1 -0
- package/dist/coverage.d.ts +15 -0
- package/dist/coverage.d.ts.map +1 -0
- package/dist/describe-resources.d.ts +60 -0
- package/dist/describe-resources.d.ts.map +1 -0
- package/dist/detect.d.ts +12 -0
- package/dist/detect.d.ts.map +1 -0
- package/dist/generated/index.d.ts +38 -0
- package/dist/generated/index.d.ts.map +1 -0
- package/dist/generated/runtime.d.ts +5 -0
- package/dist/generated/runtime.d.ts.map +1 -0
- package/dist/index.d.ts +11 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/integrity.json +18 -0
- package/dist/lint/audit-catalog.d.ts +13 -0
- package/dist/lint/audit-catalog.d.ts.map +1 -0
- package/dist/lint/post-synth/index.d.ts +3 -0
- package/dist/lint/post-synth/index.d.ts.map +1 -0
- package/dist/lint/post-synth/ren010-native-runtime-requires-commands.d.ts +12 -0
- package/dist/lint/post-synth/ren010-native-runtime-requires-commands.d.ts.map +1 -0
- package/dist/lint/post-synth/ren011-service-requires-source.d.ts +12 -0
- package/dist/lint/post-synth/ren011-service-requires-source.d.ts.map +1 -0
- package/dist/lint/post-synth/ren012-free-plan-cannot-scale.d.ts +11 -0
- package/dist/lint/post-synth/ren012-free-plan-cannot-scale.d.ts.map +1 -0
- package/dist/lint/post-synth/render-helpers.d.ts +19 -0
- package/dist/lint/post-synth/render-helpers.d.ts.map +1 -0
- package/dist/lint/rules/index.d.ts +7 -0
- package/dist/lint/rules/index.d.ts.map +1 -0
- package/dist/lint/rules/no-secret-literals.d.ts +13 -0
- package/dist/lint/rules/no-secret-literals.d.ts.map +1 -0
- package/dist/lint/rules/valid-cron-schedule.d.ts +12 -0
- package/dist/lint/rules/valid-cron-schedule.d.ts.map +1 -0
- package/dist/lint/rules/valid-region.d.ts +16 -0
- package/dist/lint/rules/valid-region.d.ts.map +1 -0
- package/dist/lsp/completions.d.ts +8 -0
- package/dist/lsp/completions.d.ts.map +1 -0
- package/dist/lsp/hover.d.ts +6 -0
- package/dist/lsp/hover.d.ts.map +1 -0
- package/dist/manifest.json +6 -0
- package/dist/meta.json +304 -0
- package/dist/okf/index.md +29 -0
- package/dist/okf/rules/REN001.md +11 -0
- package/dist/okf/rules/REN002.md +15 -0
- package/dist/okf/rules/REN003.md +15 -0
- package/dist/okf/rules/REN010.md +11 -0
- package/dist/okf/rules/REN011.md +11 -0
- package/dist/okf/rules/REN012.md +11 -0
- package/dist/okf/types/BackgroundWorker.md +24 -0
- package/dist/okf/types/CronJob.md +28 -0
- package/dist/okf/types/CustomDomain.md +14 -0
- package/dist/okf/types/Disk.md +16 -0
- package/dist/okf/types/EnvGroup.md +22 -0
- package/dist/okf/types/Environment.md +17 -0
- package/dist/okf/types/KeyValue.md +20 -0
- package/dist/okf/types/Postgres.md +29 -0
- package/dist/okf/types/PrivateService.md +24 -0
- package/dist/okf/types/Project.md +15 -0
- package/dist/okf/types/RegistryCredential.md +17 -0
- package/dist/okf/types/StaticSite.md +24 -0
- package/dist/okf/types/WebService.md +24 -0
- package/dist/okf/types/Webhook.md +17 -0
- package/dist/op/activities/fake-render.d.ts +52 -0
- package/dist/op/activities/fake-render.d.ts.map +1 -0
- package/dist/op/activities/index.d.ts +10 -0
- package/dist/op/activities/index.d.ts.map +1 -0
- package/dist/op/activities/render-apply.d.ts +229 -0
- package/dist/op/activities/render-apply.d.ts.map +1 -0
- package/dist/ownership.d.ts +32 -0
- package/dist/ownership.d.ts.map +1 -0
- package/dist/package-cli.d.ts +3 -0
- package/dist/package-cli.d.ts.map +1 -0
- package/dist/plugin.d.ts +8 -0
- package/dist/plugin.d.ts.map +1 -0
- package/dist/pseudo.d.ts +21 -0
- package/dist/pseudo.d.ts.map +1 -0
- package/dist/rules/no-secret-literals.ts +73 -0
- package/dist/rules/ren010-native-runtime-requires-commands.ts +47 -0
- package/dist/rules/ren011-service-requires-source.ts +50 -0
- package/dist/rules/ren012-free-plan-cannot-scale.ts +43 -0
- package/dist/rules/render-helpers.ts +38 -0
- package/dist/rules/valid-cron-schedule.ts +51 -0
- package/dist/rules/valid-region.ts +49 -0
- package/dist/serializer.d.ts +99 -0
- package/dist/serializer.d.ts.map +1 -0
- package/dist/skills/chant-render-patterns.md +126 -0
- package/dist/skills/chant-render.md +112 -0
- package/dist/spec/fetch.d.ts +21 -0
- package/dist/spec/fetch.d.ts.map +1 -0
- package/dist/spec/parse.d.ts +120 -0
- package/dist/spec/parse.d.ts.map +1 -0
- package/dist/types/index.d.ts +573 -0
- package/dist/validate-cli.d.ts +3 -0
- package/dist/validate-cli.d.ts.map +1 -0
- package/dist/validate.d.ts +15 -0
- package/dist/validate.d.ts.map +1 -0
- package/package.json +73 -0
- package/src/catalog.ts +286 -0
- package/src/codegen/docs-cli.ts +7 -0
- package/src/codegen/docs.ts +120 -0
- package/src/codegen/generate-cli.ts +36 -0
- package/src/codegen/generate-lexicon.ts +52 -0
- package/src/codegen/generate-typescript.ts +70 -0
- package/src/codegen/generate.ts +106 -0
- package/src/codegen/naming.ts +55 -0
- package/src/codegen/package.ts +30 -0
- package/src/composites/render-deploy.ts +133 -0
- package/src/coverage.ts +49 -0
- package/src/describe-resources.test.ts +143 -0
- package/src/describe-resources.ts +366 -0
- package/src/detect.ts +29 -0
- package/src/generated/index.d.ts +573 -0
- package/src/generated/index.ts +43 -0
- package/src/generated/lexicon-render.json +304 -0
- package/src/generated/runtime.ts +4 -0
- package/src/index.ts +30 -0
- package/src/lint/audit-catalog.ts +47 -0
- package/src/lint/post-synth/index.ts +11 -0
- package/src/lint/post-synth/post-synth.test.ts +151 -0
- package/src/lint/post-synth/ren010-native-runtime-requires-commands.ts +47 -0
- package/src/lint/post-synth/ren011-service-requires-source.ts +50 -0
- package/src/lint/post-synth/ren012-free-plan-cannot-scale.ts +43 -0
- package/src/lint/post-synth/render-helpers.ts +38 -0
- package/src/lint/rules/index.ts +11 -0
- package/src/lint/rules/no-secret-literals.ts +73 -0
- package/src/lint/rules/rules.test.ts +73 -0
- package/src/lint/rules/valid-cron-schedule.ts +51 -0
- package/src/lint/rules/valid-region.ts +49 -0
- package/src/lsp/completions.test.ts +28 -0
- package/src/lsp/completions.ts +22 -0
- package/src/lsp/hover.test.ts +32 -0
- package/src/lsp/hover.ts +50 -0
- package/src/op/activities/fake-render.ts +275 -0
- package/src/op/activities/index.ts +51 -0
- package/src/op/activities/render-apply.test.ts +403 -0
- package/src/op/activities/render-apply.ts +1042 -0
- package/src/ownership.ts +44 -0
- package/src/package-cli.ts +23 -0
- package/src/plugin.test.ts +54 -0
- package/src/plugin.ts +258 -0
- package/src/pseudo.ts +26 -0
- package/src/serializer.test.ts +221 -0
- package/src/serializer.ts +286 -0
- package/src/skills/chant-render-patterns.md +126 -0
- package/src/skills/chant-render.md +112 -0
- package/src/spec/fetch.ts +33 -0
- package/src/spec/parse.ts +721 -0
- package/src/validate-cli.ts +5 -0
- package/src/validate.ts +47 -0
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
---
|
|
2
|
+
type: resource-type
|
|
3
|
+
title: BackgroundWorker
|
|
4
|
+
description: render resource type Render::Services::BackgroundWorker
|
|
5
|
+
name: BackgroundWorker
|
|
6
|
+
lexicon: render
|
|
7
|
+
resource_type: Render::Services::BackgroundWorker
|
|
8
|
+
---
|
|
9
|
+
`Render::Services::BackgroundWorker`, a resource type of the render lexicon.
|
|
10
|
+
|
|
11
|
+
## Properties
|
|
12
|
+
|
|
13
|
+
- `name` (`string`, required): The service's name. Must be unique within the workspace.
|
|
14
|
+
- `serviceDetails` (`BackgroundWorkerDetails`, required)
|
|
15
|
+
- `autoDeploy` (`"no" | "yes"`, optional)
|
|
16
|
+
- `branch` (`string`, optional): The repo branch to pull, build, and deploy. If omitted, uses the repository's default branch.
|
|
17
|
+
- `buildFilter` (`BuildFilter`, optional)
|
|
18
|
+
- `environmentId` (`string | Environment`, optional): The ID of the environment the service belongs to, if any. Obtain an environment's ID from its Settings page in the Render Dashboard.
|
|
19
|
+
- `envVars` (`(EnvVar | GeneratedEnvVar)[]`, optional)
|
|
20
|
+
- `image` (`Image`, optional)
|
|
21
|
+
- `ownerId` (`string`, optional): The ID of the workspace the service belongs to. Obtain your workspace's ID from its Settings page in the Render Dashboard.
|
|
22
|
+
- `repo` (`string`, optional): The service's repository URL. Do not specify a branch in this string (use the `branch` parameter instead).
|
|
23
|
+
- `rootDir` (`string`, optional)
|
|
24
|
+
- `secretFiles` (`SecretFile[]`, optional)
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
---
|
|
2
|
+
type: resource-type
|
|
3
|
+
title: CronJob
|
|
4
|
+
description: render resource type Render::Services::CronJob
|
|
5
|
+
name: CronJob
|
|
6
|
+
lexicon: render
|
|
7
|
+
resource_type: Render::Services::CronJob
|
|
8
|
+
---
|
|
9
|
+
`Render::Services::CronJob`, a resource type of the render lexicon.
|
|
10
|
+
|
|
11
|
+
## Properties
|
|
12
|
+
|
|
13
|
+
- `name` (`string`, required): The service's name. Must be unique within the workspace.
|
|
14
|
+
- `serviceDetails` (`CronJobDetails`, required)
|
|
15
|
+
- `autoDeploy` (`"no" | "yes"`, optional)
|
|
16
|
+
- `branch` (`string`, optional): The repo branch to pull, build, and deploy. If omitted, uses the repository's default branch.
|
|
17
|
+
- `buildFilter` (`BuildFilter`, optional)
|
|
18
|
+
- `environmentId` (`string | Environment`, optional): The ID of the environment the service belongs to, if any. Obtain an environment's ID from its Settings page in the Render Dashboard.
|
|
19
|
+
- `envVars` (`(EnvVar | GeneratedEnvVar)[]`, optional)
|
|
20
|
+
- `image` (`Image`, optional)
|
|
21
|
+
- `ownerId` (`string`, optional): The ID of the workspace the service belongs to. Obtain your workspace's ID from its Settings page in the Render Dashboard.
|
|
22
|
+
- `repo` (`string`, optional): The service's repository URL. Do not specify a branch in this string (use the `branch` parameter instead).
|
|
23
|
+
- `rootDir` (`string`, optional)
|
|
24
|
+
- `secretFiles` (`SecretFile[]`, optional)
|
|
25
|
+
|
|
26
|
+
## Governed by
|
|
27
|
+
|
|
28
|
+
- [REN003](/rules/REN003.md): Valid cron schedule
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
---
|
|
2
|
+
type: resource-type
|
|
3
|
+
title: CustomDomain
|
|
4
|
+
description: render resource type Render::Services::CustomDomain
|
|
5
|
+
name: CustomDomain
|
|
6
|
+
lexicon: render
|
|
7
|
+
resource_type: Render::Services::CustomDomain
|
|
8
|
+
---
|
|
9
|
+
`Render::Services::CustomDomain`, a resource type of the render lexicon.
|
|
10
|
+
|
|
11
|
+
## Properties
|
|
12
|
+
|
|
13
|
+
- `name` (`string`, required)
|
|
14
|
+
- `serviceId` (`string | WebService | StaticSite`, required): The service the domain is attached to — an id, or a declared WebService/StaticSite.
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
---
|
|
2
|
+
type: resource-type
|
|
3
|
+
title: Disk
|
|
4
|
+
description: render resource type Render::Services::Disk
|
|
5
|
+
name: Disk
|
|
6
|
+
lexicon: render
|
|
7
|
+
resource_type: Render::Services::Disk
|
|
8
|
+
---
|
|
9
|
+
`Render::Services::Disk`, a resource type of the render lexicon.
|
|
10
|
+
|
|
11
|
+
## Properties
|
|
12
|
+
|
|
13
|
+
- `mountPath` (`string`, required)
|
|
14
|
+
- `name` (`string`, required)
|
|
15
|
+
- `serviceId` (`string | WebService | PrivateService | BackgroundWorker`, required)
|
|
16
|
+
- `sizeGB` (`number`, required)
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
---
|
|
2
|
+
type: resource-type
|
|
3
|
+
title: EnvGroup
|
|
4
|
+
description: render resource type Render::Config::EnvGroup
|
|
5
|
+
name: EnvGroup
|
|
6
|
+
lexicon: render
|
|
7
|
+
resource_type: Render::Config::EnvGroup
|
|
8
|
+
---
|
|
9
|
+
`Render::Config::EnvGroup`, a resource type of the render lexicon.
|
|
10
|
+
|
|
11
|
+
## Properties
|
|
12
|
+
|
|
13
|
+
- `envVars` (`(EnvVar | GeneratedEnvVar)[]`, required)
|
|
14
|
+
- `name` (`string`, required)
|
|
15
|
+
- `environmentId` (`string | Environment`, optional)
|
|
16
|
+
- `ownerId` (`string`, optional)
|
|
17
|
+
- `secretFiles` (`SecretFile[]`, optional)
|
|
18
|
+
- `serviceIds` (`(string | WebService | PrivateService | BackgroundWorker | CronJob | StaticSite)[]`, optional)
|
|
19
|
+
|
|
20
|
+
## Governed by
|
|
21
|
+
|
|
22
|
+
- [REN002](/rules/REN002.md): No secret literals in env vars
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
---
|
|
2
|
+
type: resource-type
|
|
3
|
+
title: Environment
|
|
4
|
+
description: render resource type Render::Projects::Environment
|
|
5
|
+
name: Environment
|
|
6
|
+
lexicon: render
|
|
7
|
+
resource_type: Render::Projects::Environment
|
|
8
|
+
---
|
|
9
|
+
`Render::Projects::Environment`, a resource type of the render lexicon.
|
|
10
|
+
|
|
11
|
+
## Properties
|
|
12
|
+
|
|
13
|
+
- `name` (`string`, required)
|
|
14
|
+
- `projectId` (`string | Project`, required)
|
|
15
|
+
- `ipAllowList` (`CidrBlockAndDescription[]`, optional)
|
|
16
|
+
- `networkIsolationEnabled` (`boolean`, optional)
|
|
17
|
+
- `protectedStatus` (`"protected" | "unprotected"`, optional)
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
---
|
|
2
|
+
type: resource-type
|
|
3
|
+
title: KeyValue
|
|
4
|
+
description: render resource type Render::Datastores::KeyValue
|
|
5
|
+
name: KeyValue
|
|
6
|
+
lexicon: render
|
|
7
|
+
resource_type: Render::Datastores::KeyValue
|
|
8
|
+
---
|
|
9
|
+
`Render::Datastores::KeyValue`, a resource type of the render lexicon.
|
|
10
|
+
|
|
11
|
+
## Properties
|
|
12
|
+
|
|
13
|
+
- `name` (`string`, required): The name of the Key Value instance
|
|
14
|
+
- `plan` (`"10g" | "1g" | "20g" | "256mb" | "40g" | "5g" | "custom" | "free" | "pro" | "pro_plus" | "standard" | "starter"`, required)
|
|
15
|
+
- `environmentId` (`string | Environment`, optional)
|
|
16
|
+
- `ipAllowList` (`CidrBlockAndDescription[]`, optional)
|
|
17
|
+
- `maxmemoryPolicy` (`"allkeys_lfu" | "allkeys_lru" | "allkeys_random" | "noeviction" | "volatile_lfu" | "volatile_lru" | "volatile_random" | "volatile_ttl"`, optional)
|
|
18
|
+
- `ownerId` (`string`, optional): The ID of the owner of the Key Value instance
|
|
19
|
+
- `persistenceMode` (`"journal_snapshot" | "off" | "snapshot"`, optional)
|
|
20
|
+
- `region` (`"frankfurt" | "ohio" | "oregon" | "singapore" | "virginia"`, optional)
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
---
|
|
2
|
+
type: resource-type
|
|
3
|
+
title: Postgres
|
|
4
|
+
description: render resource type Render::Datastores::Postgres
|
|
5
|
+
name: Postgres
|
|
6
|
+
lexicon: render
|
|
7
|
+
resource_type: Render::Datastores::Postgres
|
|
8
|
+
---
|
|
9
|
+
`Render::Datastores::Postgres`, a resource type of the render lexicon.
|
|
10
|
+
|
|
11
|
+
## Properties
|
|
12
|
+
|
|
13
|
+
- `name` (`string`, required): The name of the database as it will appear in the Render Dashboard
|
|
14
|
+
- `plan` (`"0.1c-256mb" | "0.5c-1g" | "128c-1024g" | "128c-512g" | "16c-128g" | "16c-64g" | "1c-2g" | "1c-4g" | "2c-16g" | "2c-4g" | "2c-8g" | "32c-128g" | "32c-256g" | "48c-192g" | "48c-384g" | "4c-16g" | "4c-32g" | "64c-256g" | "64c-512g" | "8c-32g" | "8c-64g" | "96c-384g" | "96c-768g" | "accelerated_1024gb" | "accelerated_128gb" | "accelerated_16gb" | "accelerated_256gb" | "accelerated_32gb" | "accelerated_384gb" | "accelerated_512gb" | "accelerated_64gb" | "accelerated_768gb" | "basic_1gb" | "basic_256mb" | "basic_4gb" | "custom" | "free" | "pro" | "pro_128gb" | "pro_16gb" | "pro_192gb" | "pro_256gb" | "pro_32gb" | "pro_384gb" | "pro_4gb" | "pro_512gb" | "pro_64gb" | "pro_8gb" | "pro_plus" | "standard" | "starter"`, required)
|
|
15
|
+
- `version` (`"11" | "12" | "13" | "14" | "15" | "16" | "17" | "18"`, required)
|
|
16
|
+
- `connectionPool` (`string`, optional): What connection pool to use (if any) out of 'pgbouncer' and 'none'
|
|
17
|
+
- `databaseName` (`string`, optional)
|
|
18
|
+
- `databaseUser` (`string`, optional)
|
|
19
|
+
- `datadogAPIKey` (`string`, optional): The Datadog API key for the Datadog agent to monitor the new database.
|
|
20
|
+
- `datadogSite` (`string`, optional): Datadog region to use for monitoring the new database. Defaults to 'US1'.
|
|
21
|
+
- `diskSizeGB` (`number`, optional): The number of gigabytes of disk space to allocate for the database
|
|
22
|
+
- `enableDiskAutoscaling` (`boolean`, optional)
|
|
23
|
+
- `enableHighAvailability` (`boolean`, optional)
|
|
24
|
+
- `environmentId` (`string | Environment`, optional)
|
|
25
|
+
- `ipAllowList` (`CidrBlockAndDescription[]`, optional)
|
|
26
|
+
- `ownerId` (`string`, optional): The ID of the workspace to create the database for
|
|
27
|
+
- `parameterOverrides` (`Record<string, string>`, optional)
|
|
28
|
+
- `readReplicas` (`ReadReplica[]`, optional)
|
|
29
|
+
- `region` (`"frankfurt" | "ohio" | "oregon" | "singapore" | "virginia"`, optional)
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
---
|
|
2
|
+
type: resource-type
|
|
3
|
+
title: PrivateService
|
|
4
|
+
description: render resource type Render::Services::PrivateService
|
|
5
|
+
name: PrivateService
|
|
6
|
+
lexicon: render
|
|
7
|
+
resource_type: Render::Services::PrivateService
|
|
8
|
+
---
|
|
9
|
+
`Render::Services::PrivateService`, a resource type of the render lexicon.
|
|
10
|
+
|
|
11
|
+
## Properties
|
|
12
|
+
|
|
13
|
+
- `name` (`string`, required): The service's name. Must be unique within the workspace.
|
|
14
|
+
- `serviceDetails` (`PrivateServiceDetails`, required)
|
|
15
|
+
- `autoDeploy` (`"no" | "yes"`, optional)
|
|
16
|
+
- `branch` (`string`, optional): The repo branch to pull, build, and deploy. If omitted, uses the repository's default branch.
|
|
17
|
+
- `buildFilter` (`BuildFilter`, optional)
|
|
18
|
+
- `environmentId` (`string | Environment`, optional): The ID of the environment the service belongs to, if any. Obtain an environment's ID from its Settings page in the Render Dashboard.
|
|
19
|
+
- `envVars` (`(EnvVar | GeneratedEnvVar)[]`, optional)
|
|
20
|
+
- `image` (`Image`, optional)
|
|
21
|
+
- `ownerId` (`string`, optional): The ID of the workspace the service belongs to. Obtain your workspace's ID from its Settings page in the Render Dashboard.
|
|
22
|
+
- `repo` (`string`, optional): The service's repository URL. Do not specify a branch in this string (use the `branch` parameter instead).
|
|
23
|
+
- `rootDir` (`string`, optional)
|
|
24
|
+
- `secretFiles` (`SecretFile[]`, optional)
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
---
|
|
2
|
+
type: resource-type
|
|
3
|
+
title: Project
|
|
4
|
+
description: render resource type Render::Projects::Project
|
|
5
|
+
name: Project
|
|
6
|
+
lexicon: render
|
|
7
|
+
resource_type: Render::Projects::Project
|
|
8
|
+
---
|
|
9
|
+
`Render::Projects::Project`, a resource type of the render lexicon.
|
|
10
|
+
|
|
11
|
+
## Properties
|
|
12
|
+
|
|
13
|
+
- `environments` (`ProjectEnvironment[]`, required): The environments to create when creating the project
|
|
14
|
+
- `name` (`string`, required): The name of the project
|
|
15
|
+
- `ownerId` (`string`, optional): The ID of the owner that the project belongs to
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
---
|
|
2
|
+
type: resource-type
|
|
3
|
+
title: RegistryCredential
|
|
4
|
+
description: render resource type Render::Config::RegistryCredential
|
|
5
|
+
name: RegistryCredential
|
|
6
|
+
lexicon: render
|
|
7
|
+
resource_type: Render::Config::RegistryCredential
|
|
8
|
+
---
|
|
9
|
+
`Render::Config::RegistryCredential`, a resource type of the render lexicon.
|
|
10
|
+
|
|
11
|
+
## Properties
|
|
12
|
+
|
|
13
|
+
- `authToken` (`string`, required)
|
|
14
|
+
- `name` (`string`, required)
|
|
15
|
+
- `registry` (`"AWS_ECR" | "DOCKER" | "GITHUB" | "GITLAB" | "GOOGLE_ARTIFACT"`, required)
|
|
16
|
+
- `username` (`string`, required)
|
|
17
|
+
- `ownerId` (`string`, optional)
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
---
|
|
2
|
+
type: resource-type
|
|
3
|
+
title: StaticSite
|
|
4
|
+
description: render resource type Render::Services::StaticSite
|
|
5
|
+
name: StaticSite
|
|
6
|
+
lexicon: render
|
|
7
|
+
resource_type: Render::Services::StaticSite
|
|
8
|
+
---
|
|
9
|
+
`Render::Services::StaticSite`, a resource type of the render lexicon.
|
|
10
|
+
|
|
11
|
+
## Properties
|
|
12
|
+
|
|
13
|
+
- `name` (`string`, required): The service's name. Must be unique within the workspace.
|
|
14
|
+
- `autoDeploy` (`"no" | "yes"`, optional)
|
|
15
|
+
- `branch` (`string`, optional): The repo branch to pull, build, and deploy. If omitted, uses the repository's default branch.
|
|
16
|
+
- `buildFilter` (`BuildFilter`, optional)
|
|
17
|
+
- `environmentId` (`string | Environment`, optional): The ID of the environment the service belongs to, if any. Obtain an environment's ID from its Settings page in the Render Dashboard.
|
|
18
|
+
- `envVars` (`(EnvVar | GeneratedEnvVar)[]`, optional)
|
|
19
|
+
- `image` (`Image`, optional)
|
|
20
|
+
- `ownerId` (`string`, optional): The ID of the workspace the service belongs to. Obtain your workspace's ID from its Settings page in the Render Dashboard.
|
|
21
|
+
- `repo` (`string`, optional): The service's repository URL. Do not specify a branch in this string (use the `branch` parameter instead).
|
|
22
|
+
- `rootDir` (`string`, optional)
|
|
23
|
+
- `secretFiles` (`SecretFile[]`, optional)
|
|
24
|
+
- `serviceDetails` (`StaticSiteDetails`, optional)
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
---
|
|
2
|
+
type: resource-type
|
|
3
|
+
title: WebService
|
|
4
|
+
description: render resource type Render::Services::WebService
|
|
5
|
+
name: WebService
|
|
6
|
+
lexicon: render
|
|
7
|
+
resource_type: Render::Services::WebService
|
|
8
|
+
---
|
|
9
|
+
`Render::Services::WebService`, a resource type of the render lexicon.
|
|
10
|
+
|
|
11
|
+
## Properties
|
|
12
|
+
|
|
13
|
+
- `name` (`string`, required): The service's name. Must be unique within the workspace.
|
|
14
|
+
- `serviceDetails` (`WebServiceDetails`, required)
|
|
15
|
+
- `autoDeploy` (`"no" | "yes"`, optional)
|
|
16
|
+
- `branch` (`string`, optional): The repo branch to pull, build, and deploy. If omitted, uses the repository's default branch.
|
|
17
|
+
- `buildFilter` (`BuildFilter`, optional)
|
|
18
|
+
- `environmentId` (`string | Environment`, optional): The ID of the environment the service belongs to, if any. Obtain an environment's ID from its Settings page in the Render Dashboard.
|
|
19
|
+
- `envVars` (`(EnvVar | GeneratedEnvVar)[]`, optional)
|
|
20
|
+
- `image` (`Image`, optional)
|
|
21
|
+
- `ownerId` (`string`, optional): The ID of the workspace the service belongs to. Obtain your workspace's ID from its Settings page in the Render Dashboard.
|
|
22
|
+
- `repo` (`string`, optional): The service's repository URL. Do not specify a branch in this string (use the `branch` parameter instead).
|
|
23
|
+
- `rootDir` (`string`, optional)
|
|
24
|
+
- `secretFiles` (`SecretFile[]`, optional)
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
---
|
|
2
|
+
type: resource-type
|
|
3
|
+
title: Webhook
|
|
4
|
+
description: render resource type Render::Config::Webhook
|
|
5
|
+
name: Webhook
|
|
6
|
+
lexicon: render
|
|
7
|
+
resource_type: Render::Config::Webhook
|
|
8
|
+
---
|
|
9
|
+
`Render::Config::Webhook`, a resource type of the render lexicon.
|
|
10
|
+
|
|
11
|
+
## Properties
|
|
12
|
+
|
|
13
|
+
- `enabled` (`boolean`, required)
|
|
14
|
+
- `eventFilter` (`("artifact_fetch_failed" | "artifact_source_changed" | "auto_deploy_disabled" | "auto_deploy_enabled" | "autoscaling_config_changed" | "autoscaling_ended" | "autoscaling_started" | "branch_deleted" | "build_ended" | "build_started" | "commit_ignored" | "cron_job_run_ended" | "cron_job_run_started" | "deploy_ended" | "deploy_started" | "disk_created" | "disk_deleted" | "disk_updated" | "edge_cache_disabled" | "edge_cache_enabled" | "edge_cache_purged" | "image_pull_failed" | "instance_count_changed" | "job_run_ended" | "key_value_available" | "key_value_config_restart" | "key_value_unhealthy" | "maintenance_ended" | "maintenance_mode_enabled" | "maintenance_mode_uri_updated" | "maintenance_started" | "pipeline_minutes_exhausted" | "plan_changed" | "postgres_available" | "postgres_backup_completed" | "postgres_backup_failed" | "postgres_backup_started" | "postgres_cluster_leader_changed" | "postgres_connection_pool_changed" | "postgres_connection_pool_enabled_changed" | "postgres_created" | "postgres_disk_autoscaling_enabled_changed" | "postgres_disk_size_changed" | "postgres_ha_status_changed" | "postgres_pitr_checkpoint_completed" | "postgres_pitr_checkpoint_failed" | "postgres_pitr_checkpoint_started" | "postgres_read_replica_stale" | "postgres_read_replicas_changed" | "postgres_restarted" | "postgres_restore_failed" | "postgres_restore_succeeded" | "postgres_unavailable" | "postgres_upgrade_failed" | "postgres_upgrade_started" | "postgres_upgrade_succeeded" | "postgres_wal_archive_failed" | "pre_deploy_ended" | "pre_deploy_started" | "server_available" | "server_failed" | "server_hardware_failure" | "server_restarted" | "service_resumed" | "service_suspended" | "zero_downtime_redeploy_ended" | "zero_downtime_redeploy_started")[]`, required): The event types that will trigger the webhook. An empty list means all event types will trigger the webhook.
|
|
15
|
+
- `name` (`string`, required)
|
|
16
|
+
- `url` (`string`, required)
|
|
17
|
+
- `ownerId` (`string`, optional): The ID of the owner (team or personal user) whose resources should be returned
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* An in-memory stand-in for the Render Public API, for tests. Implements the
|
|
3
|
+
* slice of routes the applier and the observation seam use — list/create/
|
|
4
|
+
* patch/delete for every collection in the catalog, service env vars, env
|
|
5
|
+
* group vars and links, deploys, connection-info, owners — with Render's list
|
|
6
|
+
* envelope (`[{ service: {...}, cursor }]`) and id prefixes. Not an emulator of
|
|
7
|
+
* Render's semantics beyond what chant relies on; it exists so the reconcile
|
|
8
|
+
* loop is tested end to end without an account.
|
|
9
|
+
*/
|
|
10
|
+
import type { RenderHttp } from "./render-apply.js";
|
|
11
|
+
type Rec = Record<string, unknown>;
|
|
12
|
+
interface Collection {
|
|
13
|
+
key: string;
|
|
14
|
+
prefix: string;
|
|
15
|
+
items: Map<string, Rec>;
|
|
16
|
+
}
|
|
17
|
+
export declare class FakeRender {
|
|
18
|
+
readonly owners: Rec[];
|
|
19
|
+
readonly collections: Record<string, Collection>;
|
|
20
|
+
/** serviceId → env vars */
|
|
21
|
+
readonly serviceEnv: Map<string, {
|
|
22
|
+
key: string;
|
|
23
|
+
value: string;
|
|
24
|
+
}[]>;
|
|
25
|
+
/** serviceId → deploys (newest first) */
|
|
26
|
+
readonly deploys: Map<string, {
|
|
27
|
+
id: string;
|
|
28
|
+
status: string;
|
|
29
|
+
}[]>;
|
|
30
|
+
/** serviceId → custom domains */
|
|
31
|
+
readonly domains: Map<string, Rec[]>;
|
|
32
|
+
/** Every call, for assertions. */
|
|
33
|
+
readonly calls: Array<{
|
|
34
|
+
method: string;
|
|
35
|
+
path: string;
|
|
36
|
+
body?: unknown;
|
|
37
|
+
}>;
|
|
38
|
+
/** Deploys go live after this many polls (0 = immediately). */
|
|
39
|
+
deployPolls: number;
|
|
40
|
+
private counter;
|
|
41
|
+
id(prefix: string): string;
|
|
42
|
+
/** Seed a resource directly. */
|
|
43
|
+
seed(collection: string, rec: Rec): Rec;
|
|
44
|
+
service(name: string): Rec | undefined;
|
|
45
|
+
http(): RenderHttp;
|
|
46
|
+
private json;
|
|
47
|
+
private route;
|
|
48
|
+
/** Advance a pending deploy toward `live` on each poll. */
|
|
49
|
+
private tickDeploy;
|
|
50
|
+
}
|
|
51
|
+
export {};
|
|
52
|
+
//# sourceMappingURL=fake-render.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fake-render.d.ts","sourceRoot":"","sources":["../../../src/op/activities/fake-render.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAEjD,KAAK,GAAG,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAEnC,UAAU,UAAU;IAClB,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;CACzB;AAED,qBAAa,UAAU;IACrB,QAAQ,CAAC,MAAM,EAAE,GAAG,EAAE,CAAyE;IAC/F,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAU9C;IACF,2BAA2B;IAC3B,QAAQ,CAAC,UAAU;aAAgC,MAAM;eAAS,MAAM;SAAO;IAC/E,yCAAyC;IACzC,QAAQ,CAAC,OAAO;YAA+B,MAAM;gBAAU,MAAM;SAAO;IAC5E,iCAAiC;IACjC,QAAQ,CAAC,OAAO,qBAA4B;IAC5C,kCAAkC;IAClC,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,OAAO,CAAA;KAAE,CAAC,CAAM;IAC7E,+DAA+D;IAC/D,WAAW,SAAK;IAChB,OAAO,CAAC,OAAO,CAAK;IAEpB,EAAE,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM;IAK1B,gCAAgC;IAChC,IAAI,CAAC,UAAU,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,GAAG,GAAG;IAYvC,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,GAAG,GAAG,SAAS;IAItC,IAAI,IAAI,UAAU;IASlB,OAAO,CAAC,IAAI;IAIZ,OAAO,CAAC,KAAK;IA0Lb,2DAA2D;IAC3D,OAAO,CAAC,UAAU;CAOnB"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* render Op activities — resolved by the core activity registry when a
|
|
3
|
+
* project's `chant.config.ts` lists the `render` lexicon. Contributes the
|
|
4
|
+
* native Render API applier (`renderApply`), which speaks the Render Public
|
|
5
|
+
* API directly (no CLI, no Blueprint, no state file), and its teardown twin
|
|
6
|
+
* (`renderDelete`).
|
|
7
|
+
*/
|
|
8
|
+
export { renderApply, renderApplyDetailed, renderDelete, toApplyResult, resolveEndpoint, parsePlan, orderPlan, collectDependencies, configEqual, diffForPatch, envVarsToMap, declaredEnvVarsToMap, envVarsDiffer, isChantOwned, ownershipOf, planOwnership, inStack, defaultRenderHttp, listAll, getOne, resolveOwner, findExisting, resolveAttribute, resolveMarkers, create, patch, remove, readServiceEnvVars, putServiceEnvVars, reconcileEnvGroupVars, linkEnvGroupServices, latestDeploy, waitForDeploy, DEFAULT_RENDER_BASE_URL, } from "./render-apply.js";
|
|
9
|
+
export type { RenderApplyArgs, RenderApplyOutcome, RenderHttp, WaitOpts, ApplyCtx, LiveEntity, } from "./render-apply.js";
|
|
10
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/op/activities/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,EACL,WAAW,EACX,mBAAmB,EACnB,YAAY,EACZ,aAAa,EACb,eAAe,EACf,SAAS,EACT,SAAS,EACT,mBAAmB,EACnB,WAAW,EACX,YAAY,EACZ,YAAY,EACZ,oBAAoB,EACpB,aAAa,EACb,YAAY,EACZ,WAAW,EACX,aAAa,EACb,OAAO,EACP,iBAAiB,EACjB,OAAO,EACP,MAAM,EACN,YAAY,EACZ,YAAY,EACZ,gBAAgB,EAChB,cAAc,EACd,MAAM,EACN,KAAK,EACL,MAAM,EACN,kBAAkB,EAClB,iBAAiB,EACjB,qBAAqB,EACrB,oBAAoB,EACpB,YAAY,EACZ,aAAa,EACb,uBAAuB,GACxB,MAAM,gBAAgB,CAAC;AACxB,YAAY,EACV,eAAe,EACf,kBAAkB,EAClB,UAAU,EACV,QAAQ,EACR,QAAQ,EACR,UAAU,GACX,MAAM,gBAAgB,CAAC"}
|
|
@@ -0,0 +1,229 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Render native applier.
|
|
3
|
+
*
|
|
4
|
+
* Peer of `flyApply`: a direct-REST applier that does its own diff, owned-only
|
|
5
|
+
* prune, and mutation waiting. Render has no server-side declarative apply
|
|
6
|
+
* (Blueprints are repo-driven, not API-driven), so this loop is hand-rolled —
|
|
7
|
+
* find-by-name, then create or PATCH per resource, resolve cross-resource ids
|
|
8
|
+
* as they become known, wait each service's deploy to `live`, and prune only
|
|
9
|
+
* what chant owns.
|
|
10
|
+
*
|
|
11
|
+
* Input is the serializer's output: a JSON object keyed by entity name, each
|
|
12
|
+
* value a single Render create request `{ kind, entityType, endpoint, method,
|
|
13
|
+
* name, body, pathParams? }`. Bodies may carry three markers the applier
|
|
14
|
+
* resolves at apply time:
|
|
15
|
+
* - `{ $ref: "<entity>" }` → the live id of a declared entity (must apply first)
|
|
16
|
+
* - `{ $attr: { entity, attribute } }` → an attribute of a live entity
|
|
17
|
+
* (`id`, `dashboardUrl`, or a datastore's connection string, read from the
|
|
18
|
+
* `/connection-info` side endpoint)
|
|
19
|
+
* - `{ $owner: true }` → the workspace id, when neither the author nor
|
|
20
|
+
* `RENDER_OWNER_ID` named one; resolved once from `GET /owners`
|
|
21
|
+
*
|
|
22
|
+
* Identity. Render assigns opaque ids on create; the *name* is the reconcile
|
|
23
|
+
* key. Services are unique-by-name per workspace (Render enforces it); for the
|
|
24
|
+
* other kinds chant treats the name as unique within its scope (owner, or the
|
|
25
|
+
* parent project/service) and takes the first exact match.
|
|
26
|
+
*
|
|
27
|
+
* Endpoint override via `RENDER_API_BASE_URL` (or an explicit `endpoint` arg)
|
|
28
|
+
* so the same code points at api.render.com or a local stand-in; auth is a
|
|
29
|
+
* bearer token from `RENDER_API_KEY` (or `token`).
|
|
30
|
+
*/
|
|
31
|
+
import { type OwnershipMarker } from "@intentius/chant/ownership";
|
|
32
|
+
import { type ApplyResult, type NotAttemptedResource } from "@intentius/chant/apply";
|
|
33
|
+
import { type CatalogEntry } from "../../catalog.js";
|
|
34
|
+
import { type RenderPlan, type RenderRequest } from "../../serializer.js";
|
|
35
|
+
/** Default API host when neither an `endpoint` arg nor `RENDER_API_BASE_URL` is set. */
|
|
36
|
+
export declare const DEFAULT_RENDER_BASE_URL = "https://api.render.com/v1";
|
|
37
|
+
/**
|
|
38
|
+
* Resolve the API base URL: an explicit `endpoint` arg wins, then
|
|
39
|
+
* `RENDER_API_BASE_URL`, then api.render.com. Trailing slash stripped. Pure.
|
|
40
|
+
*/
|
|
41
|
+
export declare function resolveEndpoint(args?: {
|
|
42
|
+
endpoint?: string;
|
|
43
|
+
}, env?: NodeJS.ProcessEnv): string;
|
|
44
|
+
/** Parse the serializer's JSON output into a plan. Pure. */
|
|
45
|
+
export declare function parsePlan(content: string): RenderPlan;
|
|
46
|
+
/** Collect the entity names a value references through `$ref`/`$attr` markers. Pure. */
|
|
47
|
+
export declare function collectDependencies(value: unknown, acc?: Set<string>): Set<string>;
|
|
48
|
+
/**
|
|
49
|
+
* Order the plan for apply: by catalog order (projects → environments →
|
|
50
|
+
* datastores/env groups → services → disks/domains → webhooks), and within
|
|
51
|
+
* that so every `$ref`/`$attr` target precedes its referrer. Throws on a cycle
|
|
52
|
+
* or a dangling reference — both are authoring errors worth naming. Pure.
|
|
53
|
+
*/
|
|
54
|
+
export declare function orderPlan(plan: RenderPlan): Array<[string, RenderRequest]>;
|
|
55
|
+
/** Structural equality over two values, key-order-insensitive. Pure. */
|
|
56
|
+
export declare function configEqual(a: unknown, b: unknown): boolean;
|
|
57
|
+
/**
|
|
58
|
+
* The PATCH body for a live resource: the declared values of the catalog's
|
|
59
|
+
* patchable fields that differ from what is live. Only fields the author set
|
|
60
|
+
* are compared — an omitted field is "leave as is", never "reset to default".
|
|
61
|
+
* Returns `undefined` when nothing differs. Pure.
|
|
62
|
+
*/
|
|
63
|
+
export declare function diffForPatch(entry: CatalogEntry, desired: Record<string, unknown>, live: Record<string, unknown>): Record<string, unknown> | undefined;
|
|
64
|
+
/** Live env-var list (`[{ envVar: {key, value}, cursor }]` or bare) → key/value map. Pure. */
|
|
65
|
+
export declare function envVarsToMap(list: unknown): Record<string, string>;
|
|
66
|
+
/** Declared env-var list (`[{key, value} | {key, generateValue}]`) → key/value map (generated values as `undefined`). Pure. */
|
|
67
|
+
export declare function declaredEnvVarsToMap(list: unknown): Record<string, string | undefined>;
|
|
68
|
+
/**
|
|
69
|
+
* True when a live env-var map carries chant's ownership marker. Reads the key
|
|
70
|
+
* convention the render lexicon declares (`RENDER_ENV_OWNERSHIP_KEYS`) through
|
|
71
|
+
* core's `hasOwnershipMarker`, so the prune filter and the serializer's stamp
|
|
72
|
+
* can never drift apart. Pure.
|
|
73
|
+
*/
|
|
74
|
+
export declare function isChantOwned(envVars: Record<string, string> | null | undefined): boolean;
|
|
75
|
+
/** The stack/env identity a live env-var map carries, if marked. Pure. */
|
|
76
|
+
export declare function ownershipOf(envVars: Record<string, string> | null | undefined): OwnershipMarker | undefined;
|
|
77
|
+
/**
|
|
78
|
+
* Whether a declared env-var set and a live one differ. Generated values
|
|
79
|
+
* (`generateValue: true`) match any live value — Render made it up once and
|
|
80
|
+
* chant must not regenerate it every run. Pure.
|
|
81
|
+
*/
|
|
82
|
+
export declare function envVarsDiffer(declared: unknown, live: Record<string, string>): boolean;
|
|
83
|
+
/** The plan's ownership marker (from the first marked body), for scoping prune. Pure. */
|
|
84
|
+
export declare function planOwnership(plan: RenderPlan): OwnershipMarker | undefined;
|
|
85
|
+
/**
|
|
86
|
+
* Whether a live marked resource belongs to this plan's stack: same stack
|
|
87
|
+
* (and env, when the plan names one). A plan with no stack identity (bare
|
|
88
|
+
* `managed-by` only) owns every chant-marked resource in the workspace, which
|
|
89
|
+
* is the pre-#119 single-stack behaviour and is what an unconfigured project
|
|
90
|
+
* gets. Pure.
|
|
91
|
+
*/
|
|
92
|
+
export declare function inStack(live: OwnershipMarker | undefined, plan: OwnershipMarker | undefined): boolean;
|
|
93
|
+
export type RenderHttp = (method: string, url: string, body?: unknown, headers?: Record<string, string>, signal?: AbortSignal) => Promise<{
|
|
94
|
+
status: number;
|
|
95
|
+
text: string;
|
|
96
|
+
}>;
|
|
97
|
+
/**
|
|
98
|
+
* Default `fetch`-based client. Sends `Authorization: Bearer <token>`; the
|
|
99
|
+
* token defaults to `RENDER_API_KEY` at call time. Retries 429 (Render rate
|
|
100
|
+
* limits at ~ 400 req/min) honouring `retry-after`, capped.
|
|
101
|
+
*/
|
|
102
|
+
export declare function defaultRenderHttp(token?: string): RenderHttp;
|
|
103
|
+
export interface WaitOpts {
|
|
104
|
+
/** Wait for a created service's first deploy to reach `live`. Default: true. */
|
|
105
|
+
deploys?: boolean;
|
|
106
|
+
/** Poll interval in ms. Default: 5000. */
|
|
107
|
+
intervalMs?: number;
|
|
108
|
+
/** Overall client deadline per deploy in ms. Default: 15 minutes. */
|
|
109
|
+
deadlineMs?: number;
|
|
110
|
+
}
|
|
111
|
+
export interface ApplyCtx {
|
|
112
|
+
base: string;
|
|
113
|
+
ownerId?: string;
|
|
114
|
+
}
|
|
115
|
+
/** GET every page of a list endpoint, following the cursor. */
|
|
116
|
+
export declare function listAll(ctx: ApplyCtx, path: string, query: Record<string, string | undefined>, listKey: string | null, http: RenderHttp, signal?: AbortSignal): Promise<Record<string, unknown>[]>;
|
|
117
|
+
/** GET one resource by id. */
|
|
118
|
+
export declare function getOne(ctx: ApplyCtx, path: string, http: RenderHttp, signal?: AbortSignal): Promise<Record<string, unknown> | undefined>;
|
|
119
|
+
/**
|
|
120
|
+
* Resolve the workspace id: an explicit arg, then `RENDER_OWNER_ID`, then the
|
|
121
|
+
* sole owner the token can see. Throws when the token sees several — picking
|
|
122
|
+
* one silently would deploy into the wrong team.
|
|
123
|
+
*/
|
|
124
|
+
export declare function resolveOwner(ctx: ApplyCtx, args: {
|
|
125
|
+
ownerId?: string;
|
|
126
|
+
}, http: RenderHttp, signal?: AbortSignal, env?: NodeJS.ProcessEnv): Promise<string>;
|
|
127
|
+
/**
|
|
128
|
+
* Find the live resource a request declares, by name within its scope.
|
|
129
|
+
* Services also match on `type`; environments on `projectId`; disks on
|
|
130
|
+
* `serviceId`; custom domains list under their service.
|
|
131
|
+
*/
|
|
132
|
+
export declare function findExisting(ctx: ApplyCtx, req: RenderRequest, entry: CatalogEntry, endpoint: string, http: RenderHttp, signal?: AbortSignal): Promise<Record<string, unknown> | undefined>;
|
|
133
|
+
/** What the applier knows about an entity once it is live. */
|
|
134
|
+
export interface LiveEntity {
|
|
135
|
+
id: string;
|
|
136
|
+
entityType: string;
|
|
137
|
+
resource: Record<string, unknown>;
|
|
138
|
+
}
|
|
139
|
+
/**
|
|
140
|
+
* Resolve an attribute of a live entity: `id`, any field of the live resource,
|
|
141
|
+
* or a datastore connection-info field (fetched once per entity).
|
|
142
|
+
*/
|
|
143
|
+
export declare function resolveAttribute(ctx: ApplyCtx, live: LiveEntity, attribute: string, http: RenderHttp, cache: Map<string, Record<string, unknown>>, signal?: AbortSignal): Promise<unknown>;
|
|
144
|
+
/** Replace every marker in a value with its live resolution. */
|
|
145
|
+
export declare function resolveMarkers(ctx: ApplyCtx, value: unknown, lives: Map<string, LiveEntity>, http: RenderHttp, cache: Map<string, Record<string, unknown>>, ownerId: () => Promise<string>, signal?: AbortSignal): Promise<unknown>;
|
|
146
|
+
/** POST a create body; returns the created resource (services: unwrapped from `{ service, deployId }`). */
|
|
147
|
+
export declare function create(ctx: ApplyCtx, endpoint: string, body: Record<string, unknown>, http: RenderHttp, signal?: AbortSignal): Promise<{
|
|
148
|
+
resource: Record<string, unknown>;
|
|
149
|
+
deployId?: string;
|
|
150
|
+
}>;
|
|
151
|
+
/** PATCH a live resource; returns the updated resource. */
|
|
152
|
+
export declare function patch(ctx: ApplyCtx, path: string, body: Record<string, unknown>, http: RenderHttp, signal?: AbortSignal): Promise<Record<string, unknown>>;
|
|
153
|
+
/** DELETE a live resource; false when it was already gone. */
|
|
154
|
+
export declare function remove(ctx: ApplyCtx, path: string, http: RenderHttp, signal?: AbortSignal): Promise<boolean>;
|
|
155
|
+
/** Live env vars of a service (`GET /services/{id}/env-vars`), as a map. */
|
|
156
|
+
export declare function readServiceEnvVars(ctx: ApplyCtx, serviceId: string, http: RenderHttp, signal?: AbortSignal): Promise<Record<string, string>>;
|
|
157
|
+
/** Replace a service's env vars wholesale (`PUT /services/{id}/env-vars`). */
|
|
158
|
+
export declare function putServiceEnvVars(ctx: ApplyCtx, serviceId: string, envVars: unknown[], http: RenderHttp, signal?: AbortSignal): Promise<void>;
|
|
159
|
+
/**
|
|
160
|
+
* Reconcile an env group's env vars: Render's group PATCH takes only `name`,
|
|
161
|
+
* so each var is PUT by key and removed keys are DELETEd. Returns whether
|
|
162
|
+
* anything changed.
|
|
163
|
+
*/
|
|
164
|
+
export declare function reconcileEnvGroupVars(ctx: ApplyCtx, groupId: string, declared: unknown, live: Record<string, string>, http: RenderHttp, signal?: AbortSignal): Promise<boolean>;
|
|
165
|
+
/** Link the declared services to an env group (`POST /env-groups/{id}/services/{serviceId}`). */
|
|
166
|
+
export declare function linkEnvGroupServices(ctx: ApplyCtx, groupId: string, serviceIds: string[], live: Record<string, unknown>, http: RenderHttp, signal?: AbortSignal): Promise<boolean>;
|
|
167
|
+
/** The latest deploy of a service, if any. */
|
|
168
|
+
export declare function latestDeploy(ctx: ApplyCtx, serviceId: string, http: RenderHttp, signal?: AbortSignal): Promise<{
|
|
169
|
+
id: string;
|
|
170
|
+
status: string;
|
|
171
|
+
} | undefined>;
|
|
172
|
+
/**
|
|
173
|
+
* Poll a service's deploy until it is `live`. Throws on a failed/canceled
|
|
174
|
+
* deploy or when the deadline passes. When `deployId` is unknown, the latest
|
|
175
|
+
* deploy is watched.
|
|
176
|
+
*/
|
|
177
|
+
export declare function waitForDeploy(ctx: ApplyCtx, serviceId: string, deployId: string | undefined, opts: WaitOpts, http: RenderHttp, signal?: AbortSignal, now?: () => number): Promise<string>;
|
|
178
|
+
export interface RenderApplyArgs {
|
|
179
|
+
/** Path to the serializer's plan JSON. */
|
|
180
|
+
planPath: string;
|
|
181
|
+
/** API base URL override. Default: `RENDER_API_BASE_URL`, else api.render.com. */
|
|
182
|
+
endpoint?: string;
|
|
183
|
+
/** Bearer token. Default: `RENDER_API_KEY`. */
|
|
184
|
+
token?: string;
|
|
185
|
+
/** Workspace id for `$owner` markers. Default: `RENDER_OWNER_ID`, else the sole visible owner. */
|
|
186
|
+
ownerId?: string;
|
|
187
|
+
/**
|
|
188
|
+
* Prune chant-owned services and env groups the plan no longer declares.
|
|
189
|
+
* Owned = carries the `CHANT_MANAGED_BY=chant` env-var marker for this
|
|
190
|
+
* plan's stack. Destructive — off by default.
|
|
191
|
+
*/
|
|
192
|
+
prune?: boolean;
|
|
193
|
+
/** Deploy wait tuning. */
|
|
194
|
+
wait?: WaitOpts;
|
|
195
|
+
}
|
|
196
|
+
export interface RenderApplyOutcome {
|
|
197
|
+
applied: Array<{
|
|
198
|
+
kind: string;
|
|
199
|
+
name: string;
|
|
200
|
+
action: "created" | "updated" | "unchanged";
|
|
201
|
+
id?: string;
|
|
202
|
+
entity: string;
|
|
203
|
+
}>;
|
|
204
|
+
pruned: Array<{
|
|
205
|
+
kind: string;
|
|
206
|
+
name: string;
|
|
207
|
+
id: string;
|
|
208
|
+
deleted: boolean;
|
|
209
|
+
}>;
|
|
210
|
+
notAttempted: NotAttemptedResource[];
|
|
211
|
+
}
|
|
212
|
+
/** Map an outcome onto core's versioned apply envelope. Pure. */
|
|
213
|
+
export declare function toApplyResult(outcome: RenderApplyOutcome): ApplyResult;
|
|
214
|
+
/**
|
|
215
|
+
* Apply a serialized Render plan: create or update every declared resource in
|
|
216
|
+
* dependency order, resolving `$ref`/`$attr`/`$owner` markers as their targets
|
|
217
|
+
* go live; wait each created service's deploy to `live`; prune owned orphans
|
|
218
|
+
* when asked. Returns the versioned {@link ApplyResult}.
|
|
219
|
+
*/
|
|
220
|
+
export declare function renderApply(args: RenderApplyArgs, signal?: AbortSignal, http?: RenderHttp): Promise<ApplyResult>;
|
|
221
|
+
export declare function renderApplyDetailed(args: RenderApplyArgs, signal?: AbortSignal, http?: RenderHttp): Promise<RenderApplyOutcome>;
|
|
222
|
+
/**
|
|
223
|
+
* Delete every resource a plan declares, in reverse apply order — the
|
|
224
|
+
* teardown twin of {@link renderApply}. Looks each up by name; a resource that
|
|
225
|
+
* is already gone is reported `deleted: false`. Only what the plan names is
|
|
226
|
+
* touched.
|
|
227
|
+
*/
|
|
228
|
+
export declare function renderDelete(args: RenderApplyArgs, signal?: AbortSignal, http?: RenderHttp): Promise<ApplyResult>;
|
|
229
|
+
//# sourceMappingURL=render-apply.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"render-apply.d.ts","sourceRoot":"","sources":["../../../src/op/activities/render-apply.ts"],"names":[],"mappings":"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"}
|