Skip to content

Commit 5bc41d6

Browse files
fix(bootstrap): compute-agentcore is a variant choice, not a core policy
compute_type drives which compute policy is needed — agentcore and ecs are independent choices, not base+optional. An operator deploying only ECS should not require agentcore permissions. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
1 parent 898739c commit 5bc41d6

2 files changed

Lines changed: 15 additions & 10 deletions

File tree

cdk/src/bootstrap/required-policies.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,10 +21,10 @@ const CORE_POLICIES = [
2121
'infrastructure',
2222
'application',
2323
'observability',
24-
'compute-agentcore',
2524
] as const;
2625

2726
const COMPUTE_VARIANT_POLICIES: Record<string, string[]> = {
27+
agentcore: ['compute-agentcore'],
2828
ecs: ['compute-ecs'],
2929
};
3030

cdk/test/bootstrap/required-policies.test.ts

Lines changed: 14 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -20,25 +20,30 @@
2020
import { getRequiredBootstrapPolicies } from '../../src/bootstrap/required-policies';
2121

2222
describe('getRequiredBootstrapPolicies', () => {
23-
it('returns core policies plus compute-agentcore for default', () => {
23+
it('returns core policies plus compute-agentcore for agentcore type', () => {
2424
const result = getRequiredBootstrapPolicies('agentcore');
2525
expect(result).toEqual(['infrastructure', 'application', 'observability', 'compute-agentcore']);
2626
});
2727

28-
it('includes compute-ecs when compute type is ecs', () => {
28+
it('returns core policies plus compute-ecs for ecs type', () => {
2929
const result = getRequiredBootstrapPolicies('ecs');
30-
expect(result).toContain('compute-ecs');
31-
expect(result).toContain('compute-agentcore');
30+
expect(result).toEqual(['infrastructure', 'application', 'observability', 'compute-ecs']);
31+
expect(result).not.toContain('compute-agentcore');
3232
});
3333

34-
it('always includes compute-agentcore regardless of type', () => {
35-
const result = getRequiredBootstrapPolicies('ecs');
36-
expect(result).toContain('compute-agentcore');
34+
it('compute variants are independent choices', () => {
35+
const agentcore = getRequiredBootstrapPolicies('agentcore');
36+
const ecs = getRequiredBootstrapPolicies('ecs');
37+
expect(agentcore).toContain('compute-agentcore');
38+
expect(agentcore).not.toContain('compute-ecs');
39+
expect(ecs).toContain('compute-ecs');
40+
expect(ecs).not.toContain('compute-agentcore');
3741
});
3842

39-
it('returns core policies for unknown compute type', () => {
43+
it('returns only core policies for unknown compute type', () => {
4044
const result = getRequiredBootstrapPolicies('unknown');
41-
expect(result).toEqual(['infrastructure', 'application', 'observability', 'compute-agentcore']);
45+
expect(result).toEqual(['infrastructure', 'application', 'observability']);
4246
expect(result).not.toContain('compute-ecs');
47+
expect(result).not.toContain('compute-agentcore');
4348
});
4449
});

0 commit comments

Comments
 (0)