@ankhorage/infra 3.3.0 → 4.1.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.
Files changed (51) hide show
  1. package/CHANGELOG.md +12 -0
  2. package/README.md +6 -7
  3. package/dist/adapters/minikube/base/index.js +26 -10
  4. package/dist/adapters/minikube/base/index.js.map +1 -1
  5. package/dist/adapters/minikube/index.d.ts.map +1 -1
  6. package/dist/adapters/minikube/index.js +2 -16
  7. package/dist/adapters/minikube/index.js.map +1 -1
  8. package/dist/index.d.ts +0 -1
  9. package/dist/index.d.ts.map +1 -1
  10. package/dist/index.js +0 -1
  11. package/dist/index.js.map +1 -1
  12. package/dist/infraValidation.d.ts +1 -0
  13. package/dist/infraValidation.d.ts.map +1 -1
  14. package/dist/infraValidation.js +6 -1
  15. package/dist/infraValidation.js.map +1 -1
  16. package/dist/project/index.d.ts +1 -1
  17. package/dist/project/index.d.ts.map +1 -1
  18. package/dist/project/index.js +1 -1
  19. package/dist/project/index.js.map +1 -1
  20. package/dist/readme-usage.js +5 -0
  21. package/dist/readme-usage.js.map +1 -1
  22. package/dist/runtime.d.ts +6 -0
  23. package/dist/runtime.d.ts.map +1 -1
  24. package/dist/runtime.js +24 -0
  25. package/dist/runtime.js.map +1 -1
  26. package/dist/types.d.ts +1 -1
  27. package/dist/types.d.ts.map +1 -1
  28. package/dist/types.js.map +1 -1
  29. package/package.json +7 -7
  30. package/src/adapters/minikube/README.md +9 -1
  31. package/src/adapters/minikube/base/index.test.ts +33 -0
  32. package/src/adapters/minikube/base/index.ts +28 -10
  33. package/src/adapters/minikube/base/portForwardRuntime.test.ts +288 -0
  34. package/src/adapters/minikube/base/twoAppIsolation.integration.test.ts +272 -9
  35. package/src/adapters/minikube/index.ts +2 -21
  36. package/src/apiInfrastructure.test.ts +69 -0
  37. package/src/generatedApiLedgerCleanup.test.ts +72 -0
  38. package/src/index.ts +0 -6
  39. package/src/infraApiValidation.test.ts +42 -0
  40. package/src/infraValidation.ts +10 -1
  41. package/src/project/index.test.ts +46 -0
  42. package/src/project/index.ts +1 -0
  43. package/src/readme-usage.ts +5 -0
  44. package/src/runtime.ts +31 -0
  45. package/src/types.ts +1 -1
  46. package/dist/generatedApiDatabase.d.ts +0 -20
  47. package/dist/generatedApiDatabase.d.ts.map +0 -1
  48. package/dist/generatedApiDatabase.js +0 -343
  49. package/dist/generatedApiDatabase.js.map +0 -1
  50. package/src/generatedApiDatabase.test.ts +0 -355
  51. package/src/generatedApiDatabase.ts +0 -558
package/CHANGELOG.md CHANGED
@@ -1,5 +1,17 @@
1
1
  # @ankhorage/infra
2
2
 
3
+ ## 4.1.0
4
+
5
+ ### Minor Changes
6
+
7
+ - 66ef9aa: Add a provider-aware runtime port-forward lifecycle and export `ensureProjectInfrastructureRuntime` from `@ankhorage/infra/project`.
8
+
9
+ ## 4.0.0
10
+
11
+ ### Major Changes
12
+
13
+ - 82e969e: Align infrastructure generation with canonical `infra.apis[]`, remove generated-API database projection and public generator exports, treat external APIs as infrastructure no-ops, and report internal API provisioning as unsupported in Phase 1.
14
+
3
15
  ## 3.3.0
4
16
 
5
17
  ### Minor Changes
package/README.md CHANGED
@@ -3,7 +3,7 @@
3
3
 
4
4
  # INFRA
5
5
 
6
- ![license: MIT](././paradox/badges/license.svg) ![npm: v3.2.0](././paradox/badges/npm.svg) ![runtime: bun](././paradox/badges/runtime.svg) ![typescript: strict](././paradox/badges/typescript.svg) ![eslint: checked](././paradox/badges/eslint.svg) ![prettier: checked](././paradox/badges/prettier.svg) ![build: checked](././paradox/badges/build.svg) ![tests: checked](././paradox/badges/tests.svg) ![docs: paradox](././paradox/badges/docs.svg)
6
+ ![license: MIT](././paradox/badges/license.svg) ![npm: v4.0.0](././paradox/badges/npm.svg) ![runtime: bun](././paradox/badges/runtime.svg) ![typescript: strict](././paradox/badges/typescript.svg) ![eslint: checked](././paradox/badges/eslint.svg) ![prettier: checked](././paradox/badges/prettier.svg) ![build: checked](././paradox/badges/build.svg) ![tests: checked](././paradox/badges/tests.svg) ![docs: paradox](././paradox/badges/docs.svg)
7
7
 
8
8
  Executable infra provider and standalone CLI for Ankhorage project workflows.
9
9
 
@@ -37,6 +37,11 @@ omit it when cwd is already inside `apps/<project>`. Programmatic project
37
37
  operations accept an explicit project path and do not require Studio or a
38
38
  particular workspace layout.
39
39
 
40
+ Running applications can repair their provider-aware host endpoints through
41
+ `ensureProjectInfrastructureRuntime()` from `@ankhorage/infra/project`. This
42
+ operation only ensures the generated runtime port-forward group; it does not
43
+ deploy, bootstrap, or reconcile infrastructure.
44
+
40
45
  Source: `src/readme-usage.ts`
41
46
 
42
47
  ```ts
@@ -45,12 +50,6 @@ import { runCli } from './cli/bin.js';
45
50
  await runCli(['--help']);
46
51
  ```
47
52
 
48
- ## Installation
49
-
50
- ```bash
51
- bunx @ankhorage/infra
52
- ```
53
-
54
53
  ## Generated documentation
55
54
 
56
55
  - [Interactive documentation app](././paradox/index.html)
@@ -290,6 +290,13 @@ host-level Supabase Compose runtime.
290
290
  - \`reset.sh\`: requires \`ANKH_RESET_CONFIRM=${appSlug}\`; ${resetDescription}. It does not delete the Minikube profile.
291
291
  - \`destroy.sh\`: deletes only \`minikube -p ${appSlug}\`.
292
292
 
293
+ ### Port-forward groups
294
+
295
+ - \`./scripts/port-forward.sh start runtime\` idempotently ensures ${supabaseKubernetesEnabled ? '`app` and `supabase-gateway`' : '`app` only'}, the host endpoints required by the running application. The same group supports \`stop\` and \`status\`.
296
+ - \`runtime\` excludes \`studio\` and \`db-migration\`, which are operational/bootstrap endpoints.
297
+ - \`all\` retains every generated forward, including operational/bootstrap endpoints.
298
+ - Concrete targets remain available for individual lifecycle control.
299
+
293
300
  ## Generated Resources
294
301
 
295
302
  ${resourceLines}
@@ -2711,6 +2718,11 @@ CMD ["nginx", "-g", "daemon off;"]
2711
2718
  }
2712
2719
  function getPortForwardScript(args) {
2713
2720
  const { appSlug, supabaseKubernetesEnabled, supabaseHostPorts } = args;
2721
+ const runtimeForwardNames = ['app', ...(supabaseKubernetesEnabled ? ['supabase-gateway'] : [])];
2722
+ const allForwardNames = [
2723
+ ...runtimeForwardNames,
2724
+ ...(supabaseKubernetesEnabled ? ['studio', 'db-migration'] : []),
2725
+ ];
2714
2726
  return `#!/usr/bin/env bash
2715
2727
  set -euo pipefail
2716
2728
 
@@ -2728,6 +2740,8 @@ SUPABASE_STUDIO_FORWARD_LOCAL_PORT="\${SUPABASE_STUDIO_FORWARD_LOCAL_PORT:-${sup
2728
2740
  SUPABASE_STUDIO_FORWARD_REMOTE_PORT="\${SUPABASE_STUDIO_FORWARD_REMOTE_PORT:-3000}"
2729
2741
  SUPABASE_DB_FORWARD_LOCAL_PORT="\${SUPABASE_DB_FORWARD_LOCAL_PORT:-${supabaseHostPorts.db}}"
2730
2742
  SUPABASE_DB_FORWARD_REMOTE_PORT="\${SUPABASE_DB_FORWARD_REMOTE_PORT:-5432}"
2743
+ RUNTIME_FORWARD_NAMES=(${runtimeForwardNames.join(' ')})
2744
+ ALL_FORWARD_NAMES=(${allForwardNames.join(' ')})
2731
2745
 
2732
2746
  if [[ -f "\${ROOT_DIR}/.env" ]]; then
2733
2747
  set -a
@@ -3013,26 +3027,28 @@ status_forward() {
3013
3027
 
3014
3028
  for_each_forward() {
3015
3029
  local action="\${1}"
3016
- "\${action}_forward" app
3017
- if [[ "\${SUPABASE_RUNTIME_ENABLED}" == "true" ]]; then
3018
- "\${action}_forward" supabase-gateway
3019
- "\${action}_forward" studio
3020
- "\${action}_forward" db-migration
3021
- fi
3030
+ shift
3031
+ local name
3032
+ for name in "\${@}"; do
3033
+ "\${action}_forward" "\${name}"
3034
+ done
3022
3035
  }
3023
3036
 
3024
3037
  ACTION="\${1:-start}"
3025
3038
  NAME="\${2:-all}"
3026
3039
 
3027
3040
  case "\${ACTION}:\${NAME}" in
3028
- start:all) for_each_forward start ;;
3029
- stop:all) for_each_forward stop ;;
3030
- status:all) for_each_forward status ;;
3041
+ start:runtime) for_each_forward start "\${RUNTIME_FORWARD_NAMES[@]}" ;;
3042
+ stop:runtime) for_each_forward stop "\${RUNTIME_FORWARD_NAMES[@]}" ;;
3043
+ status:runtime) for_each_forward status "\${RUNTIME_FORWARD_NAMES[@]}" ;;
3044
+ start:all) for_each_forward start "\${ALL_FORWARD_NAMES[@]}" ;;
3045
+ stop:all) for_each_forward stop "\${ALL_FORWARD_NAMES[@]}" ;;
3046
+ status:all) for_each_forward status "\${ALL_FORWARD_NAMES[@]}" ;;
3031
3047
  start:*) start_forward "\${NAME}" ;;
3032
3048
  stop:*) stop_forward "\${NAME}" ;;
3033
3049
  status:*) status_forward "\${NAME}" ;;
3034
3050
  *)
3035
- echo "Usage: ./scripts/port-forward.sh {start|stop|status} {app|supabase-gateway|studio|db-migration|all}"
3051
+ echo "Usage: ./scripts/port-forward.sh {start|stop|status} {app|supabase-gateway|studio|db-migration|runtime|all}"
3036
3052
  exit 1
3037
3053
  ;;
3038
3054
  esac