mirror of
https://github.com/whyour/qinglong.git
synced 2026-09-22 10:32:40 +08:00
feat(ql3): atomically apply cluster legacy env migration
This commit is contained in:
@@ -34,6 +34,24 @@ function validPrivileges() {
|
||||
schema_capabilities: [true, false, false, false],
|
||||
projects: [true, true, true, false],
|
||||
cluster_legacy_env_migration_plans: [false, false, false, false],
|
||||
cluster_legacy_env_migration_application_receipts: [
|
||||
false,
|
||||
false,
|
||||
false,
|
||||
false,
|
||||
],
|
||||
cluster_legacy_env_migration_application_tasks: [
|
||||
false,
|
||||
false,
|
||||
false,
|
||||
false,
|
||||
],
|
||||
cluster_legacy_env_migration_application_triggers: [
|
||||
false,
|
||||
false,
|
||||
false,
|
||||
false,
|
||||
],
|
||||
task_definitions: [true, false, false, false],
|
||||
task_definition_revisions: [true, false, false, false],
|
||||
task_execution_revisions: [true, false, false, false],
|
||||
@@ -169,6 +187,24 @@ function validAdminPrivileges() {
|
||||
schema_capabilities: [true, false, false, false],
|
||||
projects: [true, false, false, false],
|
||||
cluster_legacy_env_migration_plans: [false, false, false, false],
|
||||
cluster_legacy_env_migration_application_receipts: [
|
||||
false,
|
||||
false,
|
||||
false,
|
||||
false,
|
||||
],
|
||||
cluster_legacy_env_migration_application_tasks: [
|
||||
false,
|
||||
false,
|
||||
false,
|
||||
false,
|
||||
],
|
||||
cluster_legacy_env_migration_application_triggers: [
|
||||
false,
|
||||
false,
|
||||
false,
|
||||
false,
|
||||
],
|
||||
task_definitions: [false, false, false, false],
|
||||
task_definition_revisions: [false, false, false, false],
|
||||
task_execution_revisions: [false, false, false, false],
|
||||
@@ -457,6 +493,9 @@ function automationManagerPrivileges() {
|
||||
'plugin_package_task_ownerships',
|
||||
'plugin_package_identity_keyset_ledger',
|
||||
'cluster_legacy_env_migration_plans',
|
||||
'cluster_legacy_env_migration_application_receipts',
|
||||
'cluster_legacy_env_migration_application_tasks',
|
||||
'cluster_legacy_env_migration_application_triggers',
|
||||
'security_audit_events',
|
||||
'task_definitions',
|
||||
'task_definition_revisions',
|
||||
@@ -475,6 +514,9 @@ function automationManagerPrivileges() {
|
||||
'trigger_schedules',
|
||||
'plugin_package_identity_keyset_ledger',
|
||||
'cluster_legacy_env_migration_plans',
|
||||
'cluster_legacy_env_migration_application_receipts',
|
||||
'cluster_legacy_env_migration_application_tasks',
|
||||
'cluster_legacy_env_migration_application_triggers',
|
||||
]);
|
||||
return postgresqlControlSchemaContract.tables.map(({ name: tableName }) => ({
|
||||
tableName,
|
||||
@@ -838,7 +880,7 @@ test('accepts the exact PostgreSQL control schema and least-privilege runtime ro
|
||||
serverMajor: 16,
|
||||
currentUser: 'ql3_runtime',
|
||||
contractName: 'control-core',
|
||||
contractVersion: 69,
|
||||
contractVersion: 70,
|
||||
migrationIds: [
|
||||
'pg-0001-schema-capability',
|
||||
'pg-0002-run-core',
|
||||
@@ -910,6 +952,7 @@ test('accepts the exact PostgreSQL control schema and least-privilege runtime ro
|
||||
'pg-0068-cancellation-dispatch-project-keyset',
|
||||
'pg-0069-worker-session-management-observation',
|
||||
'pg-0070-cluster-legacy-env-migration-plans',
|
||||
'pg-0071-cluster-legacy-env-migration-applications',
|
||||
],
|
||||
});
|
||||
});
|
||||
@@ -940,10 +983,10 @@ test('accepts the exact schema and isolated least-privilege admin role', async (
|
||||
}),
|
||||
);
|
||||
assert.equal(report.currentUser, 'ql3_admin');
|
||||
assert.equal(report.contractVersion, 69);
|
||||
assert.equal(report.contractVersion, 70);
|
||||
assert.equal(
|
||||
report.migrationIds.at(-1),
|
||||
'pg-0070-cluster-legacy-env-migration-plans',
|
||||
'pg-0071-cluster-legacy-env-migration-applications',
|
||||
);
|
||||
});
|
||||
|
||||
@@ -956,10 +999,10 @@ test('accepts the isolated least-privilege automation manager role', async () =>
|
||||
}),
|
||||
);
|
||||
assert.equal(report.currentUser, 'ql3_automation_manager');
|
||||
assert.equal(report.contractVersion, 69);
|
||||
assert.equal(report.contractVersion, 70);
|
||||
assert.equal(
|
||||
report.migrationIds.at(-1),
|
||||
'pg-0070-cluster-legacy-env-migration-plans',
|
||||
'pg-0071-cluster-legacy-env-migration-applications',
|
||||
);
|
||||
|
||||
const widened = automationManagerPrivileges();
|
||||
@@ -988,10 +1031,10 @@ test('accepts the isolated least-privilege human Approval manager role', async (
|
||||
}),
|
||||
);
|
||||
assert.equal(report.currentUser, 'ql3_approval_manager');
|
||||
assert.equal(report.contractVersion, 69);
|
||||
assert.equal(report.contractVersion, 70);
|
||||
assert.equal(
|
||||
report.migrationIds.at(-1),
|
||||
'pg-0070-cluster-legacy-env-migration-plans',
|
||||
'pg-0071-cluster-legacy-env-migration-applications',
|
||||
);
|
||||
|
||||
const widened = approvalManagerPrivileges();
|
||||
@@ -1022,10 +1065,10 @@ test('accepts the isolated least-privilege Run manager role', async () => {
|
||||
}),
|
||||
);
|
||||
assert.equal(report.currentUser, 'ql3_run_manager');
|
||||
assert.equal(report.contractVersion, 69);
|
||||
assert.equal(report.contractVersion, 70);
|
||||
assert.equal(
|
||||
report.migrationIds.at(-1),
|
||||
'pg-0070-cluster-legacy-env-migration-plans',
|
||||
'pg-0071-cluster-legacy-env-migration-applications',
|
||||
);
|
||||
|
||||
const widened = runManagerPrivileges();
|
||||
@@ -1186,10 +1229,10 @@ test('accepts the exact schema and isolated Worker ingress role', async () => {
|
||||
}),
|
||||
);
|
||||
assert.equal(report.currentUser, 'ql3_worker_ingress');
|
||||
assert.equal(report.contractVersion, 69);
|
||||
assert.equal(report.contractVersion, 70);
|
||||
assert.equal(
|
||||
report.migrationIds.at(-1),
|
||||
'pg-0070-cluster-legacy-env-migration-plans',
|
||||
'pg-0071-cluster-legacy-env-migration-applications',
|
||||
);
|
||||
});
|
||||
|
||||
|
||||
Reference in New Issue
Block a user