mirror of
https://github.com/whyour/qinglong.git
synced 2026-09-22 19:29:13 +08:00
fix(ql3): keep console task authority lazy
This commit is contained in:
@@ -51,12 +51,7 @@ import { LocalSqliteApiCredentialRepository } from '../security/apiCredentialRep
|
||||
import { LocalSqliteOwnerPepperRepository } from '../local-owner/ownerPepperRepository';
|
||||
import { LocalSqliteOperationAuthority } from '../authority/operationAuthority';
|
||||
import { LocalSqliteTaskDefinitionRepository } from '../task-definition/taskDefinitionRepository';
|
||||
import { LocalSqliteTaskDefinitionAdministrationRepository } from '../task-definition/taskDefinitionAdministration';
|
||||
import {
|
||||
confirmLocalSqliteAuthenticatedUserCredentialFence,
|
||||
LocalSqliteAuthenticatedManagementFenceError,
|
||||
type LocalSqliteAuthenticatedUserCredentialFence,
|
||||
} from '../administration/packageManagement';
|
||||
import type { LocalSqliteAuthenticatedUserCredentialFence } from '../administration/packageManagement';
|
||||
import {
|
||||
TaskSpecSemanticRegistry,
|
||||
createBuiltInTaskSpecSemanticRegistry,
|
||||
@@ -105,7 +100,7 @@ export interface LocalSqliteRuntimeDatabase {
|
||||
readonly taskDefinitions: LocalSqliteTaskDefinitionRepository;
|
||||
taskDefinitionAdministrationForCredential(
|
||||
fence: Readonly<LocalSqliteAuthenticatedUserCredentialFence>,
|
||||
): TaskDefinitionAdministrationRepository;
|
||||
): Promise<TaskDefinitionAdministrationRepository>;
|
||||
readonly triggers: LocalSqliteTriggerRepository;
|
||||
readonly schedules: LocalSqliteScheduleRepository;
|
||||
readonly localDispatch: LocalDispatchStore;
|
||||
@@ -257,9 +252,19 @@ export async function openLocalSqliteRuntimeDatabase(
|
||||
readiness,
|
||||
runRepository,
|
||||
taskDefinitions,
|
||||
taskDefinitionAdministrationForCredential(
|
||||
async taskDefinitionAdministrationForCredential(
|
||||
fence: Readonly<LocalSqliteAuthenticatedUserCredentialFence>,
|
||||
) {
|
||||
const [administration, taskAdministration] = await Promise.all([
|
||||
import('../administration/packageManagement.js'),
|
||||
import('../task-definition/taskDefinitionAdministration.js'),
|
||||
]);
|
||||
const {
|
||||
confirmLocalSqliteAuthenticatedUserCredentialFence,
|
||||
LocalSqliteAuthenticatedManagementFenceError,
|
||||
} = administration;
|
||||
const { LocalSqliteTaskDefinitionAdministrationRepository } =
|
||||
taskAdministration;
|
||||
confirmLocalSqliteAuthenticatedUserCredentialFence(authority, fence);
|
||||
return new LocalSqliteTaskDefinitionAdministrationRepository(
|
||||
authority,
|
||||
|
||||
@@ -171,12 +171,10 @@ async function fixture(t) {
|
||||
|
||||
test('keeps simultaneous Task mutation credentials request-scoped and rechecks both fences in-transaction', async (t) => {
|
||||
const value = await fixture(t);
|
||||
const repositoryA = value.runtime.taskDefinitionAdministrationForCredential(
|
||||
value.fenceA,
|
||||
);
|
||||
const repositoryB = value.runtime.taskDefinitionAdministrationForCredential(
|
||||
value.fenceB,
|
||||
);
|
||||
const repositoryA =
|
||||
await value.runtime.taskDefinitionAdministrationForCredential(value.fenceA);
|
||||
const repositoryB =
|
||||
await value.runtime.taskDefinitionAdministrationForCredential(value.fenceB);
|
||||
const policyA = await value.runtime.projectPolicy.resolve('default', {
|
||||
type: 'user',
|
||||
id: 'request-user-a',
|
||||
|
||||
Reference in New Issue
Block a user