@wix/himalaya-cli 0.1596.0 → 0.1598.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.
@@ -1136,7 +1136,7 @@ himi dist --app <app> --platform android --aab --wait --target bo
1136
1136
  any pool time is spent: `invalid_android_format` (anything but `apk` / `aab`),
1137
1137
  `android_format_requires_link` (any destination but `link`), `android_format_requires_android`
1138
1138
  (an iOS-only build, where the flag would be dropped in silence), and
1139
- `android_format_requires_wix_keystore` (any `--android-signing` other than `wix-keystore`), and
1139
+ `android_format_requires_wix_keystore` (any `--android-signing` other than `wix-keystore` or `owner`), and
1140
1140
  `android_format_shell_unsupported` (the `owner-lite` shell, whose gradle build refuses a store
1141
1141
  bundle without a real Firebase config and customer identity). A mixed `--platform ios,android`
1142
1142
  applies it to the Android leg only.
@@ -1283,6 +1283,48 @@ updates come from Wix builds too; leaving Wix needs an upload-key reset through
1283
1283
  support. A pool machine without the key fails the build, naming the paths it searched, rather than
1284
1284
  signing with another key.
1285
1285
 
1286
+ ### An unsigned bundle under the owner's own name — an owner bundle
1287
+
1288
+ **Off by default.** A plane answers `501 owner_bundles_unconfigured` until `HIMI_DIST_OWNER_BUNDLES=1`
1289
+ is on its databag. It's the first half of a path for an owner who publishes to their own Google Play
1290
+ account with no WixOne link. The bundle isn't usable until it's signed, and nothing here signs it yet.
1291
+
1292
+ ```sh
1293
+ himi dist --app <app> --platform android --aab --android-signing owner \
1294
+ --package-name com.acme.app --google-services ./google-services.json --version 1.0.0 --target wix
1295
+ ```
1296
+
1297
+ - **What you get:** an **unsigned** `.aab` as `artifact.downloadUrl`, with `androidSigning: "unsigned"`
1298
+ and `ownerBundle` (`packageName`, `firebaseProjectId`, `configSha256`) on the job. No APK comes with
1299
+ it, because that would be an installable file on a Wix link under any name the caller typed.
1300
+ - **Why unsigned, not QA-signed:** Google Play should refuse an unsigned file on upload, so forgetting
1301
+ to sign costs nothing. A QA signature would be accepted, and would tie the listing to a key committed
1302
+ to this repo.
1303
+ - **It runs on Linux.** It's the one brokered job that does: `linux:dist:android` runs
1304
+ `native-ci/scripts/run-android.mjs`, which sets up the Android SDK and JDK before `run-dist`.
1305
+ - **The inputs come from the request:** `androidPackageName` and `googleServicesJson`, with nothing read
1306
+ from Branded, the Firebase pool or mobile-apps-containers-builder. The package name can't be under
1307
+ Wix's namespaces, but ownership isn't checked: Google Play binds a name at upload. The Firebase file is
1308
+ stored apart from the job record, served by `GET /v1/dist/android-config` to that job's token, and
1309
+ blanked when the job succeeds or is canceled, since Job Service may retry a failed one.
1310
+ - **It uses the self-serve quota tier**, like any other self-serve build.
1311
+ - **The pool proves the result.** `jarsigner` must say the file is unsigned, and the bundle's manifest
1312
+ must carry the owner's package name. The name can't be changed once it reaches a Play listing.
1313
+ - **Version skew.** An older `run-dist` ignores the request and signs with WixOne, so two checks guard
1314
+ this. The commit must carry `ownerBundle: 1` in `signing-protocol.json` (else
1315
+ `409 release_predates_owner_bundles`), and the result callback fails anything not reported as
1316
+ `unsigned` and drops its link (`android_format_wrong_signer`).
1317
+ - **A site-bound app is refused** (`409 owner_bundle_site_bound`). Its Google Play file is a store
1318
+ build, whose plan check this path must not bypass.
1319
+
1320
+ Other refusals, each with `code` equal to `error`: `android_signing_unsigned_requires_aab`,
1321
+ `owner_bundle_fields_unexpected` (the two fields on any other build), `owner_bundle_android_only`,
1322
+ `owner_bundle_incompatible_options` (`--signing`), `owner_bundle_shell_unsupported` (any shell but
1323
+ `branded-lite`), `owner_bundle_version_invalid`, `owner_bundle_package_invalid`,
1324
+ `owner_bundle_package_reserved` (Wix namespaces and the `himi.` prefix), `owner_bundle_firebase_required`, `owner_bundle_firebase_invalid` and
1325
+ `owner_bundle_firebase_package_mismatch` 400, and `owner_bundle_unavailable` 503. Design:
1326
+ [the design note](superpowers/specs/2026-11-07-owner-signed-play-bundle-design.md).
1327
+
1286
1328
  ### The iOS lane lives in one shared place
1287
1329
 
1288
1330
  `fastlane dist` runs with `cwd = <app>/ios`, so it needs `<app>/ios/fastlane/Fastfile`. That file is
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@wix/himalaya-cli",
3
- "version": "0.1596.0",
3
+ "version": "0.1598.0",
4
4
  "type": "module",
5
5
  "description": "himi — the Himalaya authoring CLI. Build a Tier-5 content package on your own machine, push it to the production serve as a draft, preview it on web + Himi Player, and read worker logs back — the remote dev loop. Wraps @himalaya/serve-cli for transport.",
6
6
  "keywords": [
@@ -72,5 +72,5 @@
72
72
  "artifactId": "himalaya-cli"
73
73
  }
74
74
  },
75
- "falconPackageHash": "2258d7eeee921c4ccc25fd94a40d0f24b29ca71bfc2f363b5ca7fd3f"
75
+ "falconPackageHash": "96e1d99eb8f2d094da98bb99d996d441c41fcfa91bedade74520607a"
76
76
  }