@ankhorage/infra 4.1.1 → 4.1.3

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/CHANGELOG.md CHANGED
@@ -1,5 +1,17 @@
1
1
  # @ankhorage/infra
2
2
 
3
+ ## 4.1.3
4
+
5
+ ### Patch Changes
6
+
7
+ - 9cb5d75: Require generated app-image builds to execute the app-installed Expo CLI and fail before export when dependencies are missing.
8
+
9
+ ## 4.1.2
10
+
11
+ ### Patch Changes
12
+
13
+ - b25415f: Emit Minikube README and Kong templates in their canonical generated format.
14
+
3
15
  ## 4.1.1
4
16
 
5
17
  ### Patch Changes
@@ -236,7 +236,7 @@ function getReadmeMarkdown(args) {
236
236
  ? `- Provider namespaces: \`${providerNamespaces.join('`, `')}\`\n`
237
237
  : '';
238
238
  const providerLifecycleLines = providerLifecycle.length > 0
239
- ? `\n## Provider Lifecycle Contributions\n\n${providerLifecycle
239
+ ? `## Provider Lifecycle Contributions\n\n${providerLifecycle
240
240
  .map((provider) => {
241
241
  const readiness = provider.readinessChecks.length > 0
242
242
  ? provider.readinessChecks
@@ -250,10 +250,10 @@ function getReadmeMarkdown(args) {
250
250
  : 'none';
251
251
  return `- \`${provider.id}\`: namespace \`${provider.namespace}\`; readiness ${readiness}; endpoints ${endpoints}`;
252
252
  })
253
- .join('\n')}\n`
253
+ .join('\n')}`
254
254
  : '';
255
255
  const oauthDescription = oauthProviders.length > 0
256
- ? `\nConfigured OAuth providers are wired into GoTrue through generated \`GOTRUE_EXTERNAL_*\` runtime keys. The keys are named in \`.env.example\`; values must come from trusted secret resolution for the configured \`credentialsRef\` entries.\n`
256
+ ? `\nConfigured OAuth providers are wired into GoTrue through generated \`GOTRUE_EXTERNAL_*\` runtime keys. The keys are named in \`.env.example\`; values must come from trusted secret resolution for the configured \`credentialsRef\` entries.`
257
257
  : '';
258
258
  const runtimeForwardDescription = appRuntimeEnabled
259
259
  ? supabaseKubernetesEnabled
@@ -351,10 +351,12 @@ ${appRuntimeEnabled ? `- App: \`http://127.0.0.1:${supabaseHostPorts.app}\`\n` :
351
351
 
352
352
  ## App Image Export
353
353
 
354
- \`build-app-image.sh\` clears the Expo/Metro bundler cache before every web export. Expo
355
- inlines \`EXPO_PUBLIC_*\` values into the browser bundle, so cache invalidation ensures a
356
- rotated browser-safe Supabase URL or anon key replaces the previous value before the Docker
357
- image is built. Privileged Supabase credentials are not written to the app's public env file.
354
+ \`build-app-image.sh\` requires the app-installed \`node_modules/.bin/expo\` and never resolves
355
+ Expo globally or through the network. It clears the Expo/Metro bundler cache before every web
356
+ export. Expo inlines \`EXPO_PUBLIC_*\` values into the browser bundle, so cache invalidation
357
+ ensures a rotated browser-safe Supabase URL or anon key replaces the previous value before the
358
+ Docker image is built. Privileged Supabase credentials are not written to the app's public env
359
+ file.
358
360
 
359
361
  ## Runtime Conventions
360
362
 
@@ -1579,7 +1581,7 @@ spec:
1579
1581
  `;
1580
1582
  }
1581
1583
  function getSupabaseGatewayTemplate() {
1582
- return `_format_version: '2.1'
1584
+ return `_format_version: "2.1"
1583
1585
  _transform: true
1584
1586
 
1585
1587
  consumers:
@@ -1601,8 +1603,8 @@ acls:
1601
1603
 
1602
1604
  basicauth_credentials:
1603
1605
  - consumer: DASHBOARD
1604
- username: '$DASHBOARD_USERNAME'
1605
- password: '$DASHBOARD_PASSWORD'
1606
+ username: "$DASHBOARD_USERNAME"
1607
+ password: "$DASHBOARD_PASSWORD"
1606
1608
 
1607
1609
  services:
1608
1610
  - name: auth-v1-open
@@ -2675,29 +2677,31 @@ if [[ "\${APP_BUILD_ENABLED}" != "true" ]]; then
2675
2677
  exit 0
2676
2678
  fi
2677
2679
 
2678
- if ! command -v docker >/dev/null 2>&1; then
2679
- echo "docker is required to build app image."
2680
+ if [[ ! -f "\${APP_SOURCE_DIR}/package.json" ]]; then
2681
+ echo "APP_SOURCE_DIR does not look like an app root: \${APP_SOURCE_DIR}"
2680
2682
  exit 1
2681
2683
  fi
2682
2684
 
2683
- if ! command -v bunx >/dev/null 2>&1; then
2684
- echo "bunx is required to export the app for container image build."
2685
+ if [[ ! -f "\${DOCKERFILE_PATH}" ]]; then
2686
+ echo "Dockerfile for app image build is missing: \${DOCKERFILE_PATH}"
2685
2687
  exit 1
2686
2688
  fi
2687
2689
 
2688
- if [[ ! -f "\${APP_SOURCE_DIR}/package.json" ]]; then
2689
- echo "APP_SOURCE_DIR does not look like an app root: \${APP_SOURCE_DIR}"
2690
+ EXPO_CLI="\${APP_SOURCE_DIR}/node_modules/.bin/expo"
2691
+ if [[ ! -x "\${EXPO_CLI}" ]]; then
2692
+ echo "App-owned Expo CLI is missing: \${EXPO_CLI}" >&2
2693
+ echo "Run 'bun install --frozen-lockfile' in \${APP_SOURCE_DIR} before building the app image." >&2
2690
2694
  exit 1
2691
2695
  fi
2692
2696
 
2693
- if [[ ! -f "\${DOCKERFILE_PATH}" ]]; then
2694
- echo "Dockerfile for app image build is missing: \${DOCKERFILE_PATH}"
2697
+ if ! command -v docker >/dev/null 2>&1; then
2698
+ echo "docker is required to build app image."
2695
2699
  exit 1
2696
2700
  fi
2697
2701
 
2698
2702
  (
2699
2703
  cd "\${APP_SOURCE_DIR}"
2700
- bunx expo export --platform web --clear --output-dir "\${APP_WEB_EXPORT_DIR}"
2704
+ "\${EXPO_CLI}" export --platform web --clear --output-dir "\${APP_WEB_EXPORT_DIR}"
2701
2705
  )
2702
2706
 
2703
2707
  if [[ "\${APP_WEB_EXPORT_DIR}" = /* ]]; then