@behavproof/cli 0.0.0-stage → 0.1.0
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 +14 -2
- package/dist/api.d.ts +6 -0
- package/dist/api.d.ts.map +1 -0
- package/dist/api.js +5 -0
- package/dist/api.js.map +1 -0
- package/dist/check.d.ts +272 -0
- package/dist/check.d.ts.map +1 -0
- package/dist/check.js +220 -0
- package/dist/check.js.map +1 -0
- package/dist/formal-evaluation.d.ts +108 -0
- package/dist/formal-evaluation.d.ts.map +1 -0
- package/dist/formal-evaluation.js +78 -0
- package/dist/formal-evaluation.js.map +1 -0
- package/dist/formal-worker.d.ts +2 -0
- package/dist/formal-worker.d.ts.map +1 -0
- package/dist/formal-worker.js +32 -0
- package/dist/formal-worker.js.map +1 -0
- package/dist/formal.d.ts +148 -0
- package/dist/formal.d.ts.map +1 -0
- package/dist/formal.js +99 -0
- package/dist/formal.js.map +1 -0
- package/dist/impact.d.ts +20 -0
- package/dist/impact.d.ts.map +1 -0
- package/dist/impact.js +23 -0
- package/dist/impact.js.map +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +151 -0
- package/dist/index.js.map +1 -0
- package/dist/pipeline.d.ts +38 -0
- package/dist/pipeline.d.ts.map +1 -0
- package/dist/pipeline.js +46 -0
- package/dist/pipeline.js.map +1 -0
- package/dist/project.d.ts +97 -0
- package/dist/project.d.ts.map +1 -0
- package/dist/project.js +101 -0
- package/dist/project.js.map +1 -0
- package/dist/registration.d.ts +595 -0
- package/dist/registration.d.ts.map +1 -0
- package/dist/registration.js +112 -0
- package/dist/registration.js.map +1 -0
- package/dist/report.d.ts +23 -0
- package/dist/report.d.ts.map +1 -0
- package/dist/report.js +34 -0
- package/dist/report.js.map +1 -0
- package/dist/scopes.d.ts +48 -0
- package/dist/scopes.d.ts.map +1 -0
- package/dist/scopes.js +60 -0
- package/dist/scopes.js.map +1 -0
- package/dist/trust.d.ts +533 -0
- package/dist/trust.d.ts.map +1 -0
- package/dist/trust.js +130 -0
- package/dist/trust.js.map +1 -0
- package/package.json +51 -4
- package/presets/basic-v1.json +21 -0
- package/presets/critical-v1.json +39 -0
- package/presets/standard-v1.json +21 -0
- package/schemas/config.schema.json +492 -0
- package/schemas/evidence.schema.json +3612 -0
- package/schemas/manifest.schema.json +225 -0
- package/schemas/policy.schema.json +21 -0
- package/schemas/registration.schema.json +1065 -0
- package/schemas/registry.schema.json +307 -0
- package/schemas/trust-root.schema.json +1445 -0
- package/templates/audit.yml +28 -0
- package/templates/protected-github-producer.yml +58 -0
- package/templates/protected-github-publisher.yml +111 -0
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
name: BehavProof internal audit
|
|
2
|
+
on: [pull_request, workflow_dispatch]
|
|
3
|
+
permissions:
|
|
4
|
+
contents: read
|
|
5
|
+
jobs:
|
|
6
|
+
evidence:
|
|
7
|
+
runs-on: ubuntu-latest
|
|
8
|
+
steps:
|
|
9
|
+
- uses: actions/checkout@11d5960a326750d5838078e36cf38b85af677262
|
|
10
|
+
with:
|
|
11
|
+
persist-credentials: false
|
|
12
|
+
- uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020
|
|
13
|
+
with:
|
|
14
|
+
node-version: '24'
|
|
15
|
+
- run: npm ci --ignore-scripts
|
|
16
|
+
- run: npm test
|
|
17
|
+
gate:
|
|
18
|
+
needs: [evidence]
|
|
19
|
+
if: always()
|
|
20
|
+
runs-on: ubuntu-latest
|
|
21
|
+
steps:
|
|
22
|
+
- name: Verify upstream outcome
|
|
23
|
+
env:
|
|
24
|
+
UPSTREAM_RESULT: ${{ needs.evidence.result }}
|
|
25
|
+
run: test "$UPSTREAM_RESULT" = success
|
|
26
|
+
# Use a pinned verifier installation and a separately provisioned trust root.
|
|
27
|
+
# This template does not supply those prerequisites or issue an external protected check.
|
|
28
|
+
- run: behavproof check --mode gate --trust-root /opt/behavproof/trust-root.json
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
# Review/provision this main-only workflow separately. Not active on feature branches.
|
|
2
|
+
name: BehavProof protected producer
|
|
3
|
+
on:
|
|
4
|
+
workflow_dispatch:
|
|
5
|
+
inputs:
|
|
6
|
+
pr:
|
|
7
|
+
description: PR targeting the isolated enforcement branch
|
|
8
|
+
required: true
|
|
9
|
+
type: string
|
|
10
|
+
permissions:
|
|
11
|
+
contents: read
|
|
12
|
+
actions: read
|
|
13
|
+
pull-requests: read
|
|
14
|
+
jobs:
|
|
15
|
+
collect:
|
|
16
|
+
if: github.repository == 'kanoi-y/pdd-ts' && github.ref == 'refs/heads/main'
|
|
17
|
+
runs-on: ubuntu-24.04
|
|
18
|
+
timeout-minutes: 15
|
|
19
|
+
defaults:
|
|
20
|
+
run:
|
|
21
|
+
working-directory: sdk
|
|
22
|
+
env:
|
|
23
|
+
BEHAVPROOF_WORKFLOW_SHA: ${{ vars.BEHAVPROOF_WORKFLOW_SHA }}
|
|
24
|
+
BEHAVPROOF_CURRENT_WORKFLOW_SHA: ${{ github.workflow_sha }}
|
|
25
|
+
BEHAVPROOF_SDK_SHA: ${{ vars.BEHAVPROOF_SDK_SHA }}
|
|
26
|
+
BEHAVPROOF_REGISTRATION_JSON: ${{ vars.BEHAVPROOF_REGISTRATION_JSON }}
|
|
27
|
+
BEHAVPROOF_REGISTRATION_DIGEST: ${{ vars.BEHAVPROOF_REGISTRATION_DIGEST }}
|
|
28
|
+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
29
|
+
steps:
|
|
30
|
+
- uses: actions/checkout@11d5960a326750d5838078e36cf38b85af677262 # v4
|
|
31
|
+
with:
|
|
32
|
+
repository: kanoi-y/BehavProof
|
|
33
|
+
ref: ${{ vars.BEHAVPROOF_SDK_SHA }}
|
|
34
|
+
path: sdk
|
|
35
|
+
persist-credentials: false
|
|
36
|
+
- uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4
|
|
37
|
+
with:
|
|
38
|
+
node-version: '24'
|
|
39
|
+
- run: npm ci --ignore-scripts
|
|
40
|
+
- run: npm run build
|
|
41
|
+
- run: echo "$PWD/node_modules/.bin" >> "$GITHUB_PATH"
|
|
42
|
+
- name: Stage public verifier runtime
|
|
43
|
+
run: node scripts/prepare-sandbox-sdk.mjs --built --output /tmp/behavproof-public-sdk
|
|
44
|
+
- name: Pull fixed runtime
|
|
45
|
+
run: docker pull --platform linux/amd64 node:24.14.1-bookworm@sha256:80fc934952c8f1b2b4d39907af7211f8a9fff1a4c2cf673fb49099292c251cec
|
|
46
|
+
- id: produce
|
|
47
|
+
name: Collect inside credential-free container
|
|
48
|
+
env:
|
|
49
|
+
TARGET_PR: ${{ inputs.pr }}
|
|
50
|
+
run: node scripts/github-produce.mjs --pr "$TARGET_PR" --sandbox-sdk /tmp/behavproof-public-sdk --output /tmp/behavproof-producer-artifact
|
|
51
|
+
- uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4
|
|
52
|
+
if: always() && steps.produce.outputs.artifact_name != ''
|
|
53
|
+
with:
|
|
54
|
+
name: ${{ steps.produce.outputs.artifact_name }}
|
|
55
|
+
path: /tmp/behavproof-producer-artifact/
|
|
56
|
+
include-hidden-files: true
|
|
57
|
+
if-no-files-found: error
|
|
58
|
+
retention-days: 7
|
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
# Dedicated App credentials are used only by the protected main final-gate job.
|
|
2
|
+
name: BehavProof protected publisher
|
|
3
|
+
on:
|
|
4
|
+
workflow_dispatch:
|
|
5
|
+
inputs:
|
|
6
|
+
pr:
|
|
7
|
+
description: PR targeting the isolated enforcement branch
|
|
8
|
+
required: true
|
|
9
|
+
type: string
|
|
10
|
+
producer_run:
|
|
11
|
+
description: Completed registered producer run ID
|
|
12
|
+
required: true
|
|
13
|
+
type: string
|
|
14
|
+
skip_verify:
|
|
15
|
+
description: Isolated AC-18 negative test only (always blocks the gate)
|
|
16
|
+
type: boolean
|
|
17
|
+
default: false
|
|
18
|
+
permissions:
|
|
19
|
+
contents: read
|
|
20
|
+
actions: read
|
|
21
|
+
pull-requests: read
|
|
22
|
+
jobs:
|
|
23
|
+
verify:
|
|
24
|
+
if: github.repository == 'kanoi-y/pdd-ts' && github.ref == 'refs/heads/main' && !inputs.skip_verify
|
|
25
|
+
runs-on: ubuntu-24.04
|
|
26
|
+
timeout-minutes: 10
|
|
27
|
+
defaults:
|
|
28
|
+
run:
|
|
29
|
+
working-directory: sdk
|
|
30
|
+
env:
|
|
31
|
+
BEHAVPROOF_WORKFLOW_SHA: ${{ vars.BEHAVPROOF_WORKFLOW_SHA }}
|
|
32
|
+
BEHAVPROOF_CURRENT_WORKFLOW_SHA: ${{ github.workflow_sha }}
|
|
33
|
+
BEHAVPROOF_SDK_SHA: ${{ vars.BEHAVPROOF_SDK_SHA }}
|
|
34
|
+
BEHAVPROOF_REGISTRATION_JSON: ${{ vars.BEHAVPROOF_REGISTRATION_JSON }}
|
|
35
|
+
BEHAVPROOF_REGISTRATION_DIGEST: ${{ vars.BEHAVPROOF_REGISTRATION_DIGEST }}
|
|
36
|
+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
37
|
+
steps:
|
|
38
|
+
- uses: actions/checkout@11d5960a326750d5838078e36cf38b85af677262 # v4
|
|
39
|
+
with:
|
|
40
|
+
repository: kanoi-y/BehavProof
|
|
41
|
+
ref: ${{ vars.BEHAVPROOF_SDK_SHA }}
|
|
42
|
+
path: sdk
|
|
43
|
+
persist-credentials: false
|
|
44
|
+
- uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4
|
|
45
|
+
with:
|
|
46
|
+
node-version: '24'
|
|
47
|
+
- run: npm ci --ignore-scripts
|
|
48
|
+
- run: npm run build
|
|
49
|
+
- run: echo "$PWD/node_modules/.bin" >> "$GITHUB_PATH"
|
|
50
|
+
- name: Verify registered producer and current source
|
|
51
|
+
env:
|
|
52
|
+
TARGET_PR: ${{ inputs.pr }}
|
|
53
|
+
PRODUCER_RUN: ${{ inputs.producer_run }}
|
|
54
|
+
run: node scripts/github-verify.mjs --pr "$TARGET_PR" --producer-run "$PRODUCER_RUN" --verify-only
|
|
55
|
+
gate:
|
|
56
|
+
needs: [verify]
|
|
57
|
+
if: always()
|
|
58
|
+
runs-on: ubuntu-24.04
|
|
59
|
+
timeout-minutes: 10
|
|
60
|
+
environment: pdd-publisher
|
|
61
|
+
defaults:
|
|
62
|
+
run:
|
|
63
|
+
working-directory: sdk
|
|
64
|
+
env:
|
|
65
|
+
BEHAVPROOF_WORKFLOW_SHA: ${{ vars.BEHAVPROOF_WORKFLOW_SHA }}
|
|
66
|
+
BEHAVPROOF_CURRENT_WORKFLOW_SHA: ${{ github.workflow_sha }}
|
|
67
|
+
BEHAVPROOF_SDK_SHA: ${{ vars.BEHAVPROOF_SDK_SHA }}
|
|
68
|
+
BEHAVPROOF_REGISTRATION_JSON: ${{ vars.BEHAVPROOF_REGISTRATION_JSON }}
|
|
69
|
+
BEHAVPROOF_REGISTRATION_DIGEST: ${{ vars.BEHAVPROOF_REGISTRATION_DIGEST }}
|
|
70
|
+
steps:
|
|
71
|
+
- uses: actions/checkout@11d5960a326750d5838078e36cf38b85af677262 # v4
|
|
72
|
+
with:
|
|
73
|
+
repository: kanoi-y/BehavProof
|
|
74
|
+
ref: ${{ vars.BEHAVPROOF_SDK_SHA }}
|
|
75
|
+
path: sdk
|
|
76
|
+
persist-credentials: false
|
|
77
|
+
- uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4
|
|
78
|
+
with:
|
|
79
|
+
node-version: '24'
|
|
80
|
+
- run: npm ci --ignore-scripts
|
|
81
|
+
- run: npm run build
|
|
82
|
+
- run: npm rebuild @behavproof/cli --ignore-scripts --offline
|
|
83
|
+
- run: echo "$PWD/node_modules/.bin" >> "$GITHUB_PATH"
|
|
84
|
+
- uses: actions/create-github-app-token@fee1f7d63c2ff003460e3d139729b119787bc349 # v2
|
|
85
|
+
id: app
|
|
86
|
+
with:
|
|
87
|
+
app-id: ${{ vars.PDD_APP_ID }}
|
|
88
|
+
private-key: ${{ secrets.PDD_APP_PRIVATE_KEY }}
|
|
89
|
+
owner: kanoi-y
|
|
90
|
+
repositories: pdd-ts
|
|
91
|
+
permission-checks: write
|
|
92
|
+
permission-contents: read
|
|
93
|
+
permission-pull-requests: read
|
|
94
|
+
permission-actions: read
|
|
95
|
+
permission-administration: read
|
|
96
|
+
- name: Prepare current authenticated data
|
|
97
|
+
env:
|
|
98
|
+
GITHUB_TOKEN: ${{ steps.app.outputs.token }}
|
|
99
|
+
TARGET_PR: ${{ inputs.pr }}
|
|
100
|
+
PRODUCER_RUN: ${{ inputs.producer_run }}
|
|
101
|
+
run: node scripts/github-verify.mjs --pr "$TARGET_PR" --producer-run "$PRODUCER_RUN"
|
|
102
|
+
- name: Evaluate protected gate
|
|
103
|
+
env:
|
|
104
|
+
GITHUB_TOKEN: ${{ steps.app.outputs.token }}
|
|
105
|
+
run: behavproof check --root /tmp/behavproof-project --mode gate --trust-root /tmp/behavproof-control/trust-root.json --config .behavproof/host-config.json --format json --output .behavproof/gate.json
|
|
106
|
+
- name: Publish success or explicit failure
|
|
107
|
+
if: always() && steps.app.outcome == 'success'
|
|
108
|
+
env:
|
|
109
|
+
GITHUB_TOKEN: ${{ steps.app.outputs.token }}
|
|
110
|
+
TARGET_PR: ${{ inputs.pr }}
|
|
111
|
+
run: node scripts/github-publish.mjs --pr "$TARGET_PR"
|