@styleflow.app/flowpress-deploy 1.0.0-beta.3 → 1.0.0-beta.4

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 (85) hide show
  1. package/CHANGELOG.md +13 -0
  2. package/README.md +5 -0
  3. package/containers/cms/Dockerfile +35 -0
  4. package/containers/cms/Dockerfile.dockerignore +20 -0
  5. package/containers/cms/healthz.php +17 -0
  6. package/containers/cms/install-languages.sh +16 -0
  7. package/containers/cms/mpm.conf +10 -0
  8. package/containers/cms/php.ini +16 -0
  9. package/containers/cms/sanitize.php +37 -0
  10. package/containers/cms/smtp.php +13 -0
  11. package/containers/cms/vhost.conf +58 -0
  12. package/containers/cms/wp-cli.yml +1 -0
  13. package/containers/php-runtime/Dockerfile +21 -0
  14. package/containers/web-ssr/Dockerfile +25 -0
  15. package/containers/web-ssr/Dockerfile.dockerignore +10 -0
  16. package/containers/web-static/Caddyfile +40 -0
  17. package/containers/web-static/Dockerfile +15 -0
  18. package/containers/web-static/Dockerfile.dockerignore +7 -0
  19. package/dist/ops/bootstrap.d.ts +21 -0
  20. package/dist/ops/bootstrap.d.ts.map +1 -0
  21. package/dist/ops/bootstrap.js +106 -0
  22. package/dist/ops/bootstrap.js.map +1 -0
  23. package/dist/ops/build.d.ts +30 -0
  24. package/dist/ops/build.d.ts.map +1 -0
  25. package/dist/ops/build.js +99 -0
  26. package/dist/ops/build.js.map +1 -0
  27. package/dist/ops/cli.d.ts +3 -0
  28. package/dist/ops/cli.d.ts.map +1 -0
  29. package/dist/ops/cli.js +137 -0
  30. package/dist/ops/cli.js.map +1 -0
  31. package/dist/ops/config.d.ts +54 -0
  32. package/dist/ops/config.d.ts.map +1 -0
  33. package/dist/ops/config.js +163 -0
  34. package/dist/ops/config.js.map +1 -0
  35. package/dist/ops/coolify.d.ts +2 -0
  36. package/dist/ops/coolify.d.ts.map +1 -0
  37. package/dist/ops/coolify.js +44 -0
  38. package/dist/ops/coolify.js.map +1 -0
  39. package/dist/ops/data.d.ts +27 -0
  40. package/dist/ops/data.d.ts.map +1 -0
  41. package/dist/ops/data.js +145 -0
  42. package/dist/ops/data.js.map +1 -0
  43. package/dist/ops/deploy.d.ts +18 -0
  44. package/dist/ops/deploy.d.ts.map +1 -0
  45. package/dist/ops/deploy.js +92 -0
  46. package/dist/ops/deploy.js.map +1 -0
  47. package/dist/ops/editorial.d.ts +23 -0
  48. package/dist/ops/editorial.d.ts.map +1 -0
  49. package/dist/ops/editorial.js +79 -0
  50. package/dist/ops/editorial.js.map +1 -0
  51. package/dist/ops/environment.d.ts +29 -0
  52. package/dist/ops/environment.d.ts.map +1 -0
  53. package/dist/ops/environment.js +159 -0
  54. package/dist/ops/environment.js.map +1 -0
  55. package/dist/ops/health.d.ts +25 -0
  56. package/dist/ops/health.d.ts.map +1 -0
  57. package/dist/ops/health.js +22 -0
  58. package/dist/ops/health.js.map +1 -0
  59. package/dist/ops/monitor.d.ts +23 -0
  60. package/dist/ops/monitor.d.ts.map +1 -0
  61. package/dist/ops/monitor.js +142 -0
  62. package/dist/ops/monitor.js.map +1 -0
  63. package/dist/ops/process.d.ts +9 -0
  64. package/dist/ops/process.d.ts.map +1 -0
  65. package/dist/ops/process.js +48 -0
  66. package/dist/ops/process.js.map +1 -0
  67. package/dist/ops/provision.d.ts +38 -0
  68. package/dist/ops/provision.d.ts.map +1 -0
  69. package/dist/ops/provision.js +251 -0
  70. package/dist/ops/provision.js.map +1 -0
  71. package/dist/ops/release.d.ts +26 -0
  72. package/dist/ops/release.d.ts.map +1 -0
  73. package/dist/ops/release.js +79 -0
  74. package/dist/ops/release.js.map +1 -0
  75. package/dist/ops/s3.d.ts +8 -0
  76. package/dist/ops/s3.d.ts.map +1 -0
  77. package/dist/ops/s3.js +38 -0
  78. package/dist/ops/s3.js.map +1 -0
  79. package/dist/ops/static-config.d.ts +14 -0
  80. package/dist/ops/static-config.d.ts.map +1 -0
  81. package/dist/ops/static-config.js +96 -0
  82. package/dist/ops/static-config.js.map +1 -0
  83. package/flowpress-deploy.php +2 -2
  84. package/package.json +26 -6
  85. package/schema/deployment.schema.json +45 -0
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@styleflow.app/flowpress-deploy",
3
- "version": "1.0.0-beta.3",
3
+ "version": "1.0.0-beta.4",
4
4
  "description": "Safe full and partial deployment primitives for FlowPress.",
5
5
  "type": "module",
6
6
  "license": "UNLICENSED",
@@ -28,6 +28,14 @@
28
28
  "./worker-assets": {
29
29
  "import": "./dist/worker-assets.js",
30
30
  "types": "./dist/worker-assets.d.ts"
31
+ },
32
+ "./ops/environment": {
33
+ "import": "./dist/ops/environment.js",
34
+ "types": "./dist/ops/environment.d.ts"
35
+ },
36
+ "./ops": {
37
+ "import": "./dist/ops/config.js",
38
+ "types": "./dist/ops/config.d.ts"
31
39
  }
32
40
  },
33
41
  "files": [
@@ -37,15 +45,19 @@
37
45
  "flowpress-deploy.php",
38
46
  "composer.json",
39
47
  "README.md",
40
- "CHANGELOG.md"
48
+ "CHANGELOG.md",
49
+ "containers",
50
+ "schema"
41
51
  ],
42
52
  "scripts": {
43
53
  "build": "tsc -b",
44
54
  "typecheck": "tsc -b --pretty false",
45
- "test": "vitest run && node --test tests/*-regressions.mjs && php tests/php/queue-provider-test.php",
46
- "release:check": "npm run typecheck && npm test && npm pack --dry-run",
55
+ "test": "vitest run tests/deploy.test.ts && node --test tests/*-regressions.mjs && php tests/php/queue-provider-test.php && node --test tests/ops-*.test.mjs",
56
+ "release:check": "npm run typecheck && npm test && npm run test:ops:database && npm pack --dry-run",
47
57
  "release:publish:next": "npm publish --access public --tag next",
48
- "prepublishOnly": "npm run typecheck && npm test"
58
+ "prepublishOnly": "npm run typecheck && npm test",
59
+ "test:ops": "node --test tests/ops-*.test.mjs",
60
+ "test:ops:database": "node tests/ops-database-integration.mjs"
49
61
  },
50
62
  "devDependencies": {
51
63
  "@types/node": "^22.19.3",
@@ -55,5 +67,13 @@
55
67
  "engines": {
56
68
  "node": ">=22.0.0"
57
69
  },
58
- "packageManager": "npm@10.9.3"
70
+ "packageManager": "npm@10.9.3",
71
+ "dependencies": {
72
+ "dotenv": "17.4.2",
73
+ "dotenv-expand": "12.0.3",
74
+ "yaml": "2.9.1"
75
+ },
76
+ "bin": {
77
+ "flowpress-ops": "./dist/ops/cli.js"
78
+ }
59
79
  }
@@ -0,0 +1,45 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "title": "FlowPress deployment manifest",
4
+ "type": "object",
5
+ "required": ["schemaVersion", "platform", "profile", "database", "media", "environments"],
6
+ "properties": {
7
+ "schemaVersion": { "const": 1 },
8
+ "platform": { "type": "string", "pattern": "^[a-z0-9][a-z0-9-]*$" },
9
+ "profile": { "enum": ["backend", "static", "headless-static", "headless-ssr"] },
10
+ "database": { "const": "shared" },
11
+ "media": { "enum": ["local", "s3"] },
12
+ "registryProject": { "type": "string" },
13
+ "sources": {
14
+ "type": "object",
15
+ "additionalProperties": {
16
+ "type": "object",
17
+ "required": ["ssh", "user", "path"],
18
+ "properties": { "ssh": { "type": "string" }, "user": { "type": "string" }, "path": { "type": "string", "pattern": "^/" } },
19
+ "additionalProperties": false
20
+ }
21
+ },
22
+ "environments": {
23
+ "type": "object",
24
+ "propertyNames": { "enum": ["local", "staging", "production", "preview"] },
25
+ "additionalProperties": {
26
+ "type": "object",
27
+ "required": ["publish"],
28
+ "properties": {
29
+ "publish": { "type": "array", "uniqueItems": true, "items": { "enum": ["cms", "web-static", "web-ssr"] } },
30
+ "profile": { "enum": ["backend", "static", "headless-static", "headless-ssr"] },
31
+ "frontendUrl": { "type": "string", "format": "uri" },
32
+ "backendUrl": { "type": "string", "format": "uri" },
33
+ "graphqlUrl": { "type": "string", "format": "uri" },
34
+ "mediaUrl": { "type": "string", "format": "uri" },
35
+ "backend": { "enum": ["local", "staging", "production"] },
36
+ "aliases": { "type": "array", "items": { "type": "string", "format": "uri" } },
37
+ "mode": { "const": "on-demand" },
38
+ "mail": { "enum": ["disabled", "capture", "smtp"] }
39
+ },
40
+ "additionalProperties": false
41
+ }
42
+ }
43
+ },
44
+ "additionalProperties": false
45
+ }