feat(hololake): provision signed in-app update bootstrap
This commit is contained in:
parent
7414810862
commit
cfa8fdefc2
15 changed files with 144 additions and 31 deletions
|
|
@ -62,14 +62,17 @@ test('the locked Qoder world template is the running client structure, not a ski
|
|||
const frontend = read('src/main.tsx')
|
||||
assert.equal(contract.state, 'SERVER_LIVE_CLIENT_UI_INTEGRATED')
|
||||
assert.match(contract.ui_template, /official-login-template-v0\.4-locked\+inner-screens-v0\.1/)
|
||||
assert.equal(contract.desktop_install_acceptance.mac_arm64, 'PASS')
|
||||
assert.equal(contract.desktop_install_acceptance.mac_arm64, 'BOOTSTRAP_REBUILD_REQUIRED')
|
||||
assert.equal(contract.desktop_install_acceptance.mac_x86_64, 'NOT_BUILT')
|
||||
assert.equal(contract.desktop_install_acceptance.windows, 'NOT_BUILT')
|
||||
assert.equal(contract.desktop_install_acceptance.automatic_update_channel, 'UNPROVISIONED_FAIL_CLOSED')
|
||||
assert.equal(contract.desktop_install_acceptance.automatic_update_channel, 'TRUST_PROVISIONED_PUBLIC_ROUTE_PENDING')
|
||||
assert.match(frontend, /number-nucleus/)
|
||||
assert.match(frontend, /worldStage === 'domain'/)
|
||||
assert.match(frontend, /worldStage === 'channel'/)
|
||||
assert.match(frontend, /worldStage === 'tool'/)
|
||||
assert.match(frontend, /个人节点接入说明/)
|
||||
assert.match(frontend, /由本人或本人人格体完成接入/)
|
||||
assert.match(frontend, /密码、私钥和恢复材料不得写入企业仓库或广播/)
|
||||
})
|
||||
|
||||
test('the public five-domain world starts before any private account storage is opened', () => {
|
||||
|
|
|
|||
|
|
@ -16,12 +16,12 @@ const broadcast = readJson('contracts/release-broadcast.schema.json')
|
|||
const stageOne = readJson('contracts/stage-one-platform.json')
|
||||
const publicRoute = readJson('server/release-broadcast/public-route.json')
|
||||
|
||||
test('clean Tauri foundation contains no inherited product updater endpoint', () => {
|
||||
test('HoloLake updater trust is product-owned and contains no inherited endpoint', () => {
|
||||
assert.deepEqual(foundation.upstream_product_update_endpoints, [])
|
||||
assert.deepEqual(trust.endpoints, [])
|
||||
assert.deepEqual(trust.allowedReleaseHosts, [])
|
||||
assert.equal(trust.state, 'UNPROVISIONED_FAIL_CLOSED')
|
||||
assert.equal(trust.publicKey, '')
|
||||
assert.deepEqual(trust.endpoints, ['https://guanghulab.com/hololake/releases/latest.json'])
|
||||
assert.deepEqual(trust.allowedReleaseHosts, ['guanghulab.com'])
|
||||
assert.equal(trust.state, 'PROVISIONED')
|
||||
assert.ok(trust.publicKey.length > 100)
|
||||
for (const relative of [
|
||||
'foundation.json',
|
||||
'src-tauri/release-trust.json',
|
||||
|
|
@ -67,12 +67,12 @@ test('release activation remains explicitly human controlled', () => {
|
|||
assert.equal(foundation.release_pipeline_automatic_upload_allowed, false)
|
||||
assert.equal(
|
||||
foundation.release_production_activation_state,
|
||||
'BLOCKED_PENDING_PUBLIC_HTTPS_TRUST_UPDATER_KEY_PIPELINE_EXECUTION_AND_APPLE_NOTARIZATION',
|
||||
'BOOTSTRAP_CLIENT_TRUST_PROVISIONED_PENDING_PUBLIC_ROUTE_AND_FIRST_NOTARIZED_RELEASE',
|
||||
)
|
||||
})
|
||||
|
||||
test('unprovisioned builds cannot emit updater artifacts or expose updater IPC', () => {
|
||||
assert.equal(tauriConfig.bundle.createUpdaterArtifacts, false)
|
||||
test('provisioned builds emit signed updater artifacts without exposing updater IPC', () => {
|
||||
assert.equal(tauriConfig.bundle.createUpdaterArtifacts, true)
|
||||
assert.equal(foundation.tauri_update_artifacts_enablement_gate, 'JD_CONTROLLER_PUBLIC_KEY_AND_SIGNED_RELEASE_PIPELINE_REQUIRED')
|
||||
assert.deepEqual(capability.permissions, ['core:default'])
|
||||
assert.equal(capability.permissions.includes('updater:default'), false)
|
||||
|
|
|
|||
Loading…
Reference in a new issue