@davidvornholt/standards 0.26.0 → 0.26.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -60,7 +60,7 @@ Existing project-owned files are kept. Synced files are replaced. `init` refuses
60
60
  ```sh
61
61
  bun standards sync --dry-run
62
62
  bun standards sync
63
- bun standards sync --ref v0.26.0
63
+ bun standards sync --ref v0.26.1
64
64
  bun standards sync --from ../standards
65
65
  ```
66
66
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@davidvornholt/standards",
3
- "version": "0.26.0",
3
+ "version": "0.26.1",
4
4
  "description": "Bootstrap, synchronize, and validate davidvornholt/standards consumers",
5
5
  "license": "MIT",
6
6
  "repository": {
@@ -184,17 +184,17 @@
184
184
  },
185
185
  "devDependencies": {
186
186
  "@davidvornholt/typescript-config": "0.0.0",
187
- "@types/bun": "^1.4.0",
187
+ "@types/bun": "^1.4.2",
188
188
  "sigstore": "5.0.0",
189
189
  "typescript": "7.0.2"
190
190
  },
191
191
  "engines": {
192
- "bun": ">=1.4.0"
192
+ "bun": ">=1.4.2"
193
193
  },
194
194
  "publishConfig": {
195
195
  "access": "public"
196
196
  },
197
197
  "dependencies": {
198
- "yaml": "^2.9.0"
198
+ "yaml": "^2.9.1"
199
199
  }
200
200
  }
@@ -3,6 +3,8 @@
3
3
  // itself, lists and mints scoped tokens, and revokes them. Token values
4
4
  // returned by create flow only into SOPS writers,
5
5
  // never stdout.
6
+ // User-owned tokens are intentionally outside this API and the bootstrap
7
+ // credential's authority; they must be managed separately in Cloudflare.
6
8
 
7
9
  import {
8
10
  type CfResult,
@@ -57,6 +57,8 @@ export const loadOwnedGithubStore = async (
57
57
  return { ok: true, value: migrated };
58
58
  };
59
59
 
60
+ // Private Apps belong to one owner. Selecting by repository owner keeps each
61
+ // owner's credentials separate; installation access is verified before export.
60
62
  export const selectGithubAppForRepo = (
61
63
  apps: ReadonlyArray<GithubBrokerApp>,
62
64
  repo: string,
package/src/creds-plan.ts CHANGED
@@ -7,6 +7,8 @@
7
7
  // tokens it minted for another repository, are reported
8
8
  // (creds-plan-unmanaged.ts) but never mutated. Execution lives in
9
9
  // creds-plan-run.ts.
10
+ // Live policy is preserved, not compared with a separate desired-policy manifest.
11
+ // Adding policy-drift enforcement would require a new source of truth.
10
12
 
11
13
  import { cloudflareExpiresOn } from './creds-cloudflare-expiry';
12
14
  import { groupByIntersectingFootprint } from './creds-plan-groups';
@@ -24,6 +24,9 @@ export type BrokerStore = {
24
24
  readonly cloudflare: ReadonlyArray<CloudflareBrokerAccount>;
25
25
  };
26
26
  export const EMPTY_BROKER_STORE: BrokerStore = { github: [], cloudflare: [] };
27
+ // This machine-global store trusts the local account, like its age private key.
28
+ // Encrypting it with a colocated key would not protect against that account.
29
+ // Repository secrets still belong in SOPS; this store stays outside repositories.
27
30
  const OWNER_ONLY_FILE_MODE = 0o600;
28
31
  const OWNER_ONLY_DIR_MODE = 0o700;
29
32
  const FILE_MODE_MODULUS = 0o1000;
@@ -22,6 +22,8 @@ export type ResolvedDevEnv = {
22
22
  readonly problems: ReadonlyArray<string>;
23
23
  };
24
24
 
25
+ // Each variable independently selects a complete pair and then one part.
26
+ // Variable names and neighboring references do not imply a shared credential.
25
27
  const lookupReference = (
26
28
  document: unknown,
27
29
  reference: BrokeredS3Reference,
@@ -120,6 +120,8 @@ const BYPASS_ACTOR_PROBE = 1;
120
120
  // `totalCount` means the connection is being filtered rather than merely
121
121
  // redacted, so it supplies no count; a null *element* is the documented
122
122
  // identity-withholding shape, so only the length is checked.
123
+ // Probes with restricted tokens confirmed that hidden actors still count:
124
+ // https://github.com/davidvornholt/standards/pull/176
123
125
  const countedRuleset = (node: unknown): readonly [number, number] | null => {
124
126
  if (!isRecord(node) || typeof node.databaseId !== 'number') {
125
127
  return null;
@@ -163,6 +163,9 @@ export const runCodex = async (
163
163
  {
164
164
  detached: true,
165
165
  stdio: ['ignore', 'ignore', 'pipe'],
166
+ // Approved runs share the host service identity and its GitHub token.
167
+ // Approval and write revalidation constrain the workflow; they do not
168
+ // isolate credentials. This assumes trusted, maintainer-approved work.
166
169
  env: { ...process.env },
167
170
  },
168
171
  );