1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
name: open policy
on:
workflow_dispatch:
inputs:
self-did:
description: DID running this evaluation (the evaluator's own DID)
required: true
rfp:
description: 'JSON RFP record {uri,cid,value?} present at this stage'
required: false
bid:
description: 'JSON bid record {uri,cid,value?} present at this stage'
required: false
accept:
description: 'JSON accept record {uri,cid,value?} present at this stage'
required: false
policy-args:
description: JSON policy arguments
required: false
mode:
description: 'Policy lane: full (records + work) or scope (trust-only hot path / checkScope)'
required: false
counterparty-did:
description: DID of the other side (required in scope mode)
required: false
perspective:
description: 'Evaluation side: bidder or requester. Overrides the policy-name default when the evaluator is not the policy''s named side (e.g. a bidder running a requester-attached policy before a bid exists).'
required: false
subject-did:
description: 'DID evaluated as the policy subject when no record names it (e.g. the bidder evaluating an RFP''s attached policy before any bid exists).'
required: false
root-requester-did:
description: 'DID of the root requester, when the caller knows it and record derivation would get it wrong.'
required: false
cache-key:
description: 'Verdict memo key: workflow, mode, perspective, every DID, the records and the args.'
required: false
jobs:
evaluate:
runs-on: self-hosted
outputs:
allow: ${{ steps.policy.outputs.allow }}
violations: ${{ steps.policy.outputs.violations }}
steps:
- uses: tangy/policy-open@v1
id: policy
with:
self-did: ${{ inputs.self-did || '' }}
rfp: ${{ inputs.rfp || '' }}
bid: ${{ inputs.bid || '' }}
accept: ${{ inputs.accept || '' }}
policy-args: ${{ inputs.policy-args || '' }}
mode: ${{ inputs.mode || '' }}
counterparty-did: ${{ inputs.counterparty-did || '' }}
perspective: ${{ inputs.perspective || '' }}
subject-did: ${{ inputs.subject-did || '' }}
root-requester-did: ${{ inputs.root-requester-did || '' }}
cache-key: ${{ inputs.cache-key || '' }}