@specific.dev/cli 0.1.111 → 0.1.112

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (68) hide show
  1. package/dist/admin/404/index.html +1 -1
  2. package/dist/admin/404.html +1 -1
  3. package/dist/admin/__next.!KGRlZmF1bHQp.__PAGE__.txt +1 -1
  4. package/dist/admin/__next.!KGRlZmF1bHQp.txt +1 -1
  5. package/dist/admin/__next._full.txt +1 -1
  6. package/dist/admin/__next._head.txt +1 -1
  7. package/dist/admin/__next._index.txt +1 -1
  8. package/dist/admin/__next._tree.txt +1 -1
  9. package/dist/admin/_not-found/__next._full.txt +1 -1
  10. package/dist/admin/_not-found/__next._head.txt +1 -1
  11. package/dist/admin/_not-found/__next._index.txt +1 -1
  12. package/dist/admin/_not-found/__next._not-found.__PAGE__.txt +1 -1
  13. package/dist/admin/_not-found/__next._not-found.txt +1 -1
  14. package/dist/admin/_not-found/__next._tree.txt +1 -1
  15. package/dist/admin/_not-found/index.html +1 -1
  16. package/dist/admin/_not-found/index.txt +1 -1
  17. package/dist/admin/databases/__next.!KGRlZmF1bHQp.databases.__PAGE__.txt +1 -1
  18. package/dist/admin/databases/__next.!KGRlZmF1bHQp.databases.txt +1 -1
  19. package/dist/admin/databases/__next.!KGRlZmF1bHQp.txt +1 -1
  20. package/dist/admin/databases/__next._full.txt +1 -1
  21. package/dist/admin/databases/__next._head.txt +1 -1
  22. package/dist/admin/databases/__next._index.txt +1 -1
  23. package/dist/admin/databases/__next._tree.txt +1 -1
  24. package/dist/admin/databases/index.html +1 -1
  25. package/dist/admin/databases/index.txt +1 -1
  26. package/dist/admin/fullscreen/__next._full.txt +1 -1
  27. package/dist/admin/fullscreen/__next._head.txt +1 -1
  28. package/dist/admin/fullscreen/__next._index.txt +1 -1
  29. package/dist/admin/fullscreen/__next._tree.txt +1 -1
  30. package/dist/admin/fullscreen/__next.fullscreen.__PAGE__.txt +1 -1
  31. package/dist/admin/fullscreen/__next.fullscreen.txt +1 -1
  32. package/dist/admin/fullscreen/databases/__next._full.txt +1 -1
  33. package/dist/admin/fullscreen/databases/__next._head.txt +1 -1
  34. package/dist/admin/fullscreen/databases/__next._index.txt +1 -1
  35. package/dist/admin/fullscreen/databases/__next._tree.txt +1 -1
  36. package/dist/admin/fullscreen/databases/__next.fullscreen.databases.__PAGE__.txt +1 -1
  37. package/dist/admin/fullscreen/databases/__next.fullscreen.databases.txt +1 -1
  38. package/dist/admin/fullscreen/databases/__next.fullscreen.txt +1 -1
  39. package/dist/admin/fullscreen/databases/index.html +1 -1
  40. package/dist/admin/fullscreen/databases/index.txt +1 -1
  41. package/dist/admin/fullscreen/index.html +1 -1
  42. package/dist/admin/fullscreen/index.txt +1 -1
  43. package/dist/admin/index.html +1 -1
  44. package/dist/admin/index.txt +1 -1
  45. package/dist/admin/mail/__next.!KGRlZmF1bHQp.mail.__PAGE__.txt +1 -1
  46. package/dist/admin/mail/__next.!KGRlZmF1bHQp.mail.txt +1 -1
  47. package/dist/admin/mail/__next.!KGRlZmF1bHQp.txt +1 -1
  48. package/dist/admin/mail/__next._full.txt +1 -1
  49. package/dist/admin/mail/__next._head.txt +1 -1
  50. package/dist/admin/mail/__next._index.txt +1 -1
  51. package/dist/admin/mail/__next._tree.txt +1 -1
  52. package/dist/admin/mail/index.html +1 -1
  53. package/dist/admin/mail/index.txt +1 -1
  54. package/dist/admin/workflows/__next.!KGRlZmF1bHQp.txt +1 -1
  55. package/dist/admin/workflows/__next.!KGRlZmF1bHQp.workflows.__PAGE__.txt +1 -1
  56. package/dist/admin/workflows/__next.!KGRlZmF1bHQp.workflows.txt +1 -1
  57. package/dist/admin/workflows/__next._full.txt +1 -1
  58. package/dist/admin/workflows/__next._head.txt +1 -1
  59. package/dist/admin/workflows/__next._index.txt +1 -1
  60. package/dist/admin/workflows/__next._tree.txt +1 -1
  61. package/dist/admin/workflows/index.html +1 -1
  62. package/dist/admin/workflows/index.txt +1 -1
  63. package/dist/cli.js +3 -3
  64. package/dist/docs/temporal.md +11 -40
  65. package/package.json +1 -1
  66. /package/dist/admin/_next/static/{YgbAKqz1bHvJtF6MpjtFE → HqmZIQRPGu1hRxFYqbizq}/_buildManifest.js +0 -0
  67. /package/dist/admin/_next/static/{YgbAKqz1bHvJtF6MpjtFE → HqmZIQRPGu1hRxFYqbizq}/_clientMiddlewareManifest.json +0 -0
  68. /package/dist/admin/_next/static/{YgbAKqz1bHvJtF6MpjtFE → HqmZIQRPGu1hRxFYqbizq}/_ssgManifest.js +0 -0
package/dist/cli.js CHANGED
@@ -373237,7 +373237,7 @@ function trackEvent(event, properties) {
373237
373237
  event,
373238
373238
  properties: {
373239
373239
  ...properties,
373240
- cli_version: "0.1.111",
373240
+ cli_version: "0.1.112",
373241
373241
  platform: process.platform,
373242
373242
  node_version: process.version,
373243
373243
  project_id: getProjectId()
@@ -376962,7 +376962,7 @@ function compareVersions(a, b) {
376962
376962
  return 0;
376963
376963
  }
376964
376964
  async function checkForUpdate() {
376965
- const currentVersion = "0.1.111";
376965
+ const currentVersion = "0.1.112";
376966
376966
  const response = await fetch(`${BINARIES_BASE_URL}/latest?t=${Date.now()}`);
376967
376967
  if (!response.ok) {
376968
376968
  throw new Error(`Failed to check for updates: HTTP ${response.status}`);
@@ -377230,7 +377230,7 @@ async function projectListCommand() {
377230
377230
  var program = new Command();
377231
377231
  var env = "production";
377232
377232
  var envLabel = env !== "production" ? `[${env.toUpperCase()}] ` : "";
377233
- program.name("specific").description(`${envLabel}Infrastructure-as-code for coding agents`).version("0.1.111").enablePositionalOptions();
377233
+ program.name("specific").description(`${envLabel}Infrastructure-as-code for coding agents`).version("0.1.112").enablePositionalOptions();
377234
377234
  program.command("init").description("Initialize project for use with a coding agent").option("--agent <name...>", "Agents to configure (cursor, claude, codex, other)").addHelpText("after", `
377235
377235
  Examples:
377236
377236
  $ specific init
@@ -36,11 +36,11 @@ service "worker" {
36
36
 
37
37
  Each `temporal` block exposes the following reference attributes:
38
38
 
39
- | Attribute | Description | Dev value |
40
- |-----------|-------------|-----------|
41
- | `temporal.<name>.url` | gRPC address of the Temporal server | `localhost:<port>` |
42
- | `temporal.<name>.namespace` | Temporal namespace | `default` |
43
- | `temporal.<name>.api_key` | API key for authentication | `""` (empty, no auth in dev) |
39
+ | Attribute | Description | Dev value | Production value |
40
+ |-----------|-------------|-----------|------------------|
41
+ | `temporal.<name>.url` | gRPC address of the Temporal server | `localhost:<port>` | Temporal Cloud gRPC address |
42
+ | `temporal.<name>.namespace` | Temporal namespace | `default` | Managed namespace ID |
43
+ | `temporal.<name>.api_key` | API key for authentication | `""` (empty, no auth in dev) | Auto-generated API key |
44
44
 
45
45
  These attributes can be used in service `env` blocks, both as standalone values and inside interpolated strings.
46
46
 
@@ -58,41 +58,12 @@ The `api_key` attribute returns an empty string in dev since the Temporal dev se
58
58
 
59
59
  ## Production
60
60
 
61
- Production Temporal support is not yet available through `temporal` blocks. For production, use configs and secrets to pass Temporal Cloud credentials directly:
61
+ Running `specific deploy` automatically provisions a managed [Temporal Cloud](https://temporal.io/cloud) namespace for each `temporal` block. No manual setup is required the same configuration works in both dev and production:
62
62
 
63
- ```hcl
64
- temporal "tasks" {}
65
-
66
- config "temporal_address" {}
67
- secret "temporal_api_key" {
68
- dev {
69
- required = false
70
- }
71
- }
72
-
73
- service "worker" {
74
- build = build.app
75
- command = "node worker.js"
76
-
77
- env = {
78
- # Use built-in temporal block for dev
79
- TEMPORAL_NAMESPACE = temporal.tasks.namespace
80
-
81
- # Override address and API key for production via config/secret
82
- TEMPORAL_ADDRESS = config.temporal_address
83
- TEMPORAL_API_KEY = secret.temporal_api_key
84
- }
85
-
86
- dev {
87
- command = "node --watch worker.js"
88
- env = {
89
- # In dev, use the local Temporal server
90
- TEMPORAL_ADDRESS = temporal.tasks.url
91
- TEMPORAL_API_KEY = temporal.tasks.api_key
92
- }
93
- }
94
- }
95
- ```
63
+ 1. A dedicated Temporal Cloud namespace is created
64
+ 2. A service account with write access is provisioned
65
+ 3. An API key is generated for authentication
66
+ 4. Credentials are securely injected into your services
96
67
 
97
- Set the production values with `specific secrets set` and environment config before deploying.
68
+ The reference attributes (`temporal.<name>.url`, `.namespace`, `.api_key`) resolve to the Temporal Cloud values in production, so no environment-specific overrides are needed.
98
69
  <!-- /beta:temporal -->
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@specific.dev/cli",
3
- "version": "0.1.111",
3
+ "version": "0.1.112",
4
4
  "description": "CLI for Specific infrastructure-as-code",
5
5
  "type": "module",
6
6
  "main": "dist/cli.js",