feat(ql3): establish 3.0 incubation baseline

This commit is contained in:
whyour
2026-08-12 00:25:26 +08:00
parent 4bf92dcfeb
commit c699c32461
2817 changed files with 779642 additions and 653 deletions
@@ -0,0 +1,23 @@
import type { ArtifactReadAuthorizer } from '../../ports/artifactReadAuthorizer';
import type { ArtifactReadAuthorizationEffect } from '../../ports/artifactReadAuthorizer';
import type { ProjectPolicyEngine } from '../../application/projectPolicyEngine';
export class ProjectPolicyArtifactReadAuthorizer
implements ArtifactReadAuthorizer
{
constructor(private readonly policy: Pick<ProjectPolicyEngine, 'decide'>) {}
async authorize(
request: Parameters<ArtifactReadAuthorizer['authorize']>[0],
): Promise<ArtifactReadAuthorizationEffect> {
if (request.action !== 'artifact.read') {
throw new TypeError('Artifact read authorization action is invalid');
}
const result = await this.policy.decide({
subject: request.subject,
projectId: request.projectId,
permission: 'artifact.read',
});
return result.effect;
}
}