@suveren/gateway 0.19.5 → 0.20.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/content/integrations/crm.json +1 -1
- package/content/integrations/deploy-github.json +1 -1
- package/content/integrations/erp.json +1 -1
- package/content/integrations/mail.json +1 -1
- package/content/integrations/records.json +1 -1
- package/dist/control-plane/index.mjs +21 -13
- package/dist/mcp-server/{chunk-ZRRZFGRL.mjs → chunk-APIQIEUA.mjs} +39 -27
- package/dist/mcp-server/http.mjs +308 -97
- package/dist/mcp-server/report-verify-cli.mjs +1 -1
- package/dist/ui/assets/index-1s1q-XLL.js +116 -0
- package/dist/ui/index.html +1 -1
- package/node_modules/@hap/core/README.md +92 -29
- package/node_modules/@hap/core/dist/index.d.mts +614 -593
- package/node_modules/@hap/core/dist/index.d.ts +614 -593
- package/node_modules/@hap/core/dist/index.js +774 -749
- package/node_modules/@hap/core/dist/index.mjs +744 -724
- package/node_modules/@hap/core/package.json +1 -1
- package/node_modules/@hap/core/src/base64url.ts +39 -0
- package/node_modules/@hap/core/src/commitment-modes.ts +0 -21
- package/node_modules/@hap/core/src/errors.ts +76 -0
- package/node_modules/@hap/core/src/frame.ts +47 -178
- package/node_modules/@hap/core/src/gatekeeper.ts +219 -600
- package/node_modules/@hap/core/src/identity.ts +9 -12
- package/node_modules/@hap/core/src/index.ts +8 -4
- package/node_modules/@hap/core/src/mandate.ts +177 -166
- package/node_modules/@hap/core/src/owner-signature.ts +282 -0
- package/node_modules/@hap/core/src/profile.ts +234 -0
- package/node_modules/@hap/core/src/ticket.ts +148 -0
- package/node_modules/@hap/core/src/types.ts +191 -344
- package/node_modules/@hap/core/src/versions.ts +47 -0
- package/package.json +2 -2
- package/profiles/calendar/0.6.profile.json +191 -0
- package/profiles/charge/0.6.profile.json +211 -0
- package/profiles/customers/0.9.profile.json +182 -0
- package/profiles/delegation/0.3.profile.json +118 -0
- package/profiles/deploy/0.11.profile.json +177 -0
- package/profiles/email/0.8.profile.json +226 -0
- package/profiles/index.json +12 -1
- package/profiles/publish/0.6.profile.json +187 -0
- package/profiles/purchase/0.7.profile.json +235 -0
- package/profiles/records/0.6.profile.json +118 -0
- package/profiles/reporting/0.3.profile.json +98 -0
- package/profiles/sales/0.4.profile.json +291 -0
- package/dist/ui/assets/index-Du68zJhH.js +0 -116
- package/node_modules/@hap/core/src/attestation.ts +0 -173
- package/node_modules/@hap/core/src/receipt.ts +0 -74
|
@@ -0,0 +1,187 @@
|
|
|
1
|
+
{
|
|
2
|
+
"id": "github.com/humanagencyprotocol/hap-profiles/publish@0.6",
|
|
3
|
+
"name": "Content Publishing",
|
|
4
|
+
"version": "0.6",
|
|
5
|
+
"description": "Publishing authority — governs posting public content to social media, blogs, and other platforms",
|
|
6
|
+
"whatsNew": "Protocol v0.7 wording: the scope schema replaces the context schema, and the required gate is the Mandate Owner. Limits and scope are unchanged.",
|
|
7
|
+
"boundsSchema": {
|
|
8
|
+
"actionTypes": [
|
|
9
|
+
"delete",
|
|
10
|
+
"post"
|
|
11
|
+
],
|
|
12
|
+
"keyOrder": [
|
|
13
|
+
"profile",
|
|
14
|
+
"post_daily_max",
|
|
15
|
+
"post_monthly_max"
|
|
16
|
+
],
|
|
17
|
+
"fields": {
|
|
18
|
+
"profile": {
|
|
19
|
+
"type": "string",
|
|
20
|
+
"required": true
|
|
21
|
+
},
|
|
22
|
+
"post_daily_max": {
|
|
23
|
+
"type": "number",
|
|
24
|
+
"required": true,
|
|
25
|
+
"displayName": "Daily post limit",
|
|
26
|
+
"description": "Maximum posts published per day",
|
|
27
|
+
"unit": "count",
|
|
28
|
+
"boundType": {
|
|
29
|
+
"kind": "cumulative_count",
|
|
30
|
+
"window": "daily"
|
|
31
|
+
},
|
|
32
|
+
"appliesTo": [
|
|
33
|
+
"post"
|
|
34
|
+
]
|
|
35
|
+
},
|
|
36
|
+
"post_monthly_max": {
|
|
37
|
+
"type": "number",
|
|
38
|
+
"required": true,
|
|
39
|
+
"displayName": "Monthly post limit",
|
|
40
|
+
"description": "Maximum posts published per month",
|
|
41
|
+
"unit": "count",
|
|
42
|
+
"boundType": {
|
|
43
|
+
"kind": "cumulative_count",
|
|
44
|
+
"window": "monthly"
|
|
45
|
+
},
|
|
46
|
+
"appliesTo": [
|
|
47
|
+
"post"
|
|
48
|
+
]
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
},
|
|
52
|
+
"scopeSchema": {
|
|
53
|
+
"keyOrder": [
|
|
54
|
+
"allowed_platforms",
|
|
55
|
+
"content_type",
|
|
56
|
+
"audience"
|
|
57
|
+
],
|
|
58
|
+
"fields": {
|
|
59
|
+
"allowed_platforms": {
|
|
60
|
+
"type": "string",
|
|
61
|
+
"required": true,
|
|
62
|
+
"displayName": "Platforms",
|
|
63
|
+
"description": "Authorized publishing platforms",
|
|
64
|
+
"enum": [
|
|
65
|
+
"linkedin"
|
|
66
|
+
],
|
|
67
|
+
"constraint": {
|
|
68
|
+
"type": "string",
|
|
69
|
+
"enforceable": [
|
|
70
|
+
"subset"
|
|
71
|
+
]
|
|
72
|
+
}
|
|
73
|
+
},
|
|
74
|
+
"content_type": {
|
|
75
|
+
"type": "string",
|
|
76
|
+
"required": true,
|
|
77
|
+
"displayName": "Content types",
|
|
78
|
+
"description": "Authorized content formats",
|
|
79
|
+
"enum": [
|
|
80
|
+
"text",
|
|
81
|
+
"image",
|
|
82
|
+
"article"
|
|
83
|
+
],
|
|
84
|
+
"constraint": {
|
|
85
|
+
"type": "string",
|
|
86
|
+
"enforceable": [
|
|
87
|
+
"subset"
|
|
88
|
+
]
|
|
89
|
+
}
|
|
90
|
+
},
|
|
91
|
+
"audience": {
|
|
92
|
+
"type": "string",
|
|
93
|
+
"required": true,
|
|
94
|
+
"displayName": "Audience",
|
|
95
|
+
"description": "Authorized audience visibility",
|
|
96
|
+
"enum": [
|
|
97
|
+
"public",
|
|
98
|
+
"connections"
|
|
99
|
+
],
|
|
100
|
+
"constraint": {
|
|
101
|
+
"type": "string",
|
|
102
|
+
"enforceable": [
|
|
103
|
+
"subset"
|
|
104
|
+
]
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
},
|
|
109
|
+
"executionContextSchema": {
|
|
110
|
+
"fields": {
|
|
111
|
+
"allowed_platforms": {
|
|
112
|
+
"source": "declared",
|
|
113
|
+
"description": "Platform being published to (checked against authorized platforms)",
|
|
114
|
+
"required": true,
|
|
115
|
+
"constraint": {
|
|
116
|
+
"type": "string",
|
|
117
|
+
"enforceable": [
|
|
118
|
+
"subset"
|
|
119
|
+
]
|
|
120
|
+
}
|
|
121
|
+
},
|
|
122
|
+
"content_type": {
|
|
123
|
+
"source": "declared",
|
|
124
|
+
"description": "Content format being published",
|
|
125
|
+
"required": true,
|
|
126
|
+
"constraint": {
|
|
127
|
+
"type": "string",
|
|
128
|
+
"enforceable": [
|
|
129
|
+
"subset"
|
|
130
|
+
]
|
|
131
|
+
}
|
|
132
|
+
},
|
|
133
|
+
"audience": {
|
|
134
|
+
"source": "declared",
|
|
135
|
+
"description": "Audience visibility for this post",
|
|
136
|
+
"required": true,
|
|
137
|
+
"constraint": {
|
|
138
|
+
"type": "string",
|
|
139
|
+
"enforceable": [
|
|
140
|
+
"subset"
|
|
141
|
+
]
|
|
142
|
+
}
|
|
143
|
+
},
|
|
144
|
+
"post_count_daily": {
|
|
145
|
+
"source": "cumulative",
|
|
146
|
+
"cumulativeField": "_count",
|
|
147
|
+
"window": "daily",
|
|
148
|
+
"description": "Running daily post count (resolved from execution log)",
|
|
149
|
+
"required": true,
|
|
150
|
+
"constraint": {
|
|
151
|
+
"type": "number",
|
|
152
|
+
"enforceable": [
|
|
153
|
+
"max"
|
|
154
|
+
]
|
|
155
|
+
}
|
|
156
|
+
},
|
|
157
|
+
"post_count_monthly": {
|
|
158
|
+
"source": "cumulative",
|
|
159
|
+
"cumulativeField": "_count",
|
|
160
|
+
"window": "monthly",
|
|
161
|
+
"description": "Running monthly post count (resolved from execution log)",
|
|
162
|
+
"required": true,
|
|
163
|
+
"constraint": {
|
|
164
|
+
"type": "number",
|
|
165
|
+
"enforceable": [
|
|
166
|
+
"max"
|
|
167
|
+
]
|
|
168
|
+
}
|
|
169
|
+
}
|
|
170
|
+
}
|
|
171
|
+
},
|
|
172
|
+
"requiredGates": [
|
|
173
|
+
"bounds",
|
|
174
|
+
"intent",
|
|
175
|
+
"commitment",
|
|
176
|
+
"mandate_owner"
|
|
177
|
+
],
|
|
178
|
+
"ttl": {
|
|
179
|
+
"default": 86400,
|
|
180
|
+
"max": 31536000
|
|
181
|
+
},
|
|
182
|
+
"retention_minimum": 7776000,
|
|
183
|
+
"content_binding": {
|
|
184
|
+
"version": "1",
|
|
185
|
+
"kind": "text"
|
|
186
|
+
}
|
|
187
|
+
}
|
|
@@ -0,0 +1,235 @@
|
|
|
1
|
+
{
|
|
2
|
+
"id": "github.com/humanagencyprotocol/hap-profiles/purchase@0.7",
|
|
3
|
+
"name": "Purchase",
|
|
4
|
+
"version": "0.7",
|
|
5
|
+
"description": "Purchase authority — governs spending company money: subscriptions, supplies, services, advertising",
|
|
6
|
+
"whatsNew": "Protocol v0.7 wording: the scope schema replaces the context schema, and the required gate is the Mandate Owner. Limits and scope are unchanged.",
|
|
7
|
+
"boundsSchema": {
|
|
8
|
+
"actionTypes": [
|
|
9
|
+
"purchase"
|
|
10
|
+
],
|
|
11
|
+
"keyOrder": [
|
|
12
|
+
"profile",
|
|
13
|
+
"spend_max",
|
|
14
|
+
"spend_daily_max",
|
|
15
|
+
"spend_monthly_max",
|
|
16
|
+
"transaction_count_daily_max"
|
|
17
|
+
],
|
|
18
|
+
"fields": {
|
|
19
|
+
"profile": {
|
|
20
|
+
"type": "string",
|
|
21
|
+
"required": true
|
|
22
|
+
},
|
|
23
|
+
"spend_max": {
|
|
24
|
+
"type": "number",
|
|
25
|
+
"required": true,
|
|
26
|
+
"displayName": "Max per transaction",
|
|
27
|
+
"description": "Maximum spend per transaction in currency units",
|
|
28
|
+
"unit": "currency:EUR",
|
|
29
|
+
"boundType": {
|
|
30
|
+
"kind": "per_transaction",
|
|
31
|
+
"of": "spend",
|
|
32
|
+
"requiredFor": [
|
|
33
|
+
"purchase"
|
|
34
|
+
]
|
|
35
|
+
}
|
|
36
|
+
},
|
|
37
|
+
"spend_daily_max": {
|
|
38
|
+
"type": "number",
|
|
39
|
+
"required": true,
|
|
40
|
+
"displayName": "Daily spend limit",
|
|
41
|
+
"description": "Maximum cumulative spend per day in currency units",
|
|
42
|
+
"unit": "currency:EUR",
|
|
43
|
+
"boundType": {
|
|
44
|
+
"kind": "cumulative_sum",
|
|
45
|
+
"of": "spend",
|
|
46
|
+
"window": "daily"
|
|
47
|
+
}
|
|
48
|
+
},
|
|
49
|
+
"spend_monthly_max": {
|
|
50
|
+
"type": "number",
|
|
51
|
+
"required": true,
|
|
52
|
+
"displayName": "Monthly spend limit",
|
|
53
|
+
"description": "Maximum cumulative spend per month in currency units",
|
|
54
|
+
"unit": "currency:EUR",
|
|
55
|
+
"boundType": {
|
|
56
|
+
"kind": "cumulative_sum",
|
|
57
|
+
"of": "spend",
|
|
58
|
+
"window": "monthly"
|
|
59
|
+
}
|
|
60
|
+
},
|
|
61
|
+
"transaction_count_daily_max": {
|
|
62
|
+
"type": "number",
|
|
63
|
+
"required": true,
|
|
64
|
+
"displayName": "Daily transaction limit",
|
|
65
|
+
"description": "Maximum number of purchase transactions per day",
|
|
66
|
+
"unit": "count",
|
|
67
|
+
"boundType": {
|
|
68
|
+
"kind": "cumulative_count",
|
|
69
|
+
"window": "daily"
|
|
70
|
+
},
|
|
71
|
+
"appliesTo": [
|
|
72
|
+
"purchase"
|
|
73
|
+
]
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
},
|
|
77
|
+
"scopeSchema": {
|
|
78
|
+
"keyOrder": [
|
|
79
|
+
"currency",
|
|
80
|
+
"category",
|
|
81
|
+
"allowed_vendors"
|
|
82
|
+
],
|
|
83
|
+
"fields": {
|
|
84
|
+
"currency": {
|
|
85
|
+
"type": "string",
|
|
86
|
+
"required": true,
|
|
87
|
+
"displayName": "Currency",
|
|
88
|
+
"description": "Permitted currency code",
|
|
89
|
+
"constraint": {
|
|
90
|
+
"type": "string",
|
|
91
|
+
"enforceable": [
|
|
92
|
+
"enum"
|
|
93
|
+
]
|
|
94
|
+
},
|
|
95
|
+
"enum": [
|
|
96
|
+
"USD",
|
|
97
|
+
"EUR",
|
|
98
|
+
"GBP",
|
|
99
|
+
"CHF",
|
|
100
|
+
"JPY",
|
|
101
|
+
"CAD",
|
|
102
|
+
"AUD"
|
|
103
|
+
]
|
|
104
|
+
},
|
|
105
|
+
"category": {
|
|
106
|
+
"type": "string",
|
|
107
|
+
"required": true,
|
|
108
|
+
"displayName": "Purchase category",
|
|
109
|
+
"description": "Authorized purchase category",
|
|
110
|
+
"constraint": {
|
|
111
|
+
"type": "string",
|
|
112
|
+
"enforceable": [
|
|
113
|
+
"enum"
|
|
114
|
+
]
|
|
115
|
+
},
|
|
116
|
+
"enum": [
|
|
117
|
+
"subscription",
|
|
118
|
+
"supply",
|
|
119
|
+
"service",
|
|
120
|
+
"advertising"
|
|
121
|
+
]
|
|
122
|
+
},
|
|
123
|
+
"allowed_vendors": {
|
|
124
|
+
"type": "string",
|
|
125
|
+
"required": false,
|
|
126
|
+
"displayName": "Allowed vendors",
|
|
127
|
+
"description": "Comma-separated list of approved vendor names",
|
|
128
|
+
"constraint": {
|
|
129
|
+
"type": "string",
|
|
130
|
+
"enforceable": [
|
|
131
|
+
"subset"
|
|
132
|
+
]
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
},
|
|
137
|
+
"executionContextSchema": {
|
|
138
|
+
"fields": {
|
|
139
|
+
"spend": {
|
|
140
|
+
"source": "declared",
|
|
141
|
+
"description": "Purchase amount in currency units",
|
|
142
|
+
"required": true,
|
|
143
|
+
"constraint": {
|
|
144
|
+
"type": "number",
|
|
145
|
+
"enforceable": [
|
|
146
|
+
"max"
|
|
147
|
+
]
|
|
148
|
+
}
|
|
149
|
+
},
|
|
150
|
+
"currency": {
|
|
151
|
+
"source": "declared",
|
|
152
|
+
"description": "Currency code",
|
|
153
|
+
"required": true,
|
|
154
|
+
"constraint": {
|
|
155
|
+
"type": "string",
|
|
156
|
+
"enforceable": [
|
|
157
|
+
"enum"
|
|
158
|
+
]
|
|
159
|
+
}
|
|
160
|
+
},
|
|
161
|
+
"category": {
|
|
162
|
+
"source": "declared",
|
|
163
|
+
"description": "Purchase category",
|
|
164
|
+
"required": true,
|
|
165
|
+
"constraint": {
|
|
166
|
+
"type": "string",
|
|
167
|
+
"enforceable": [
|
|
168
|
+
"enum"
|
|
169
|
+
]
|
|
170
|
+
}
|
|
171
|
+
},
|
|
172
|
+
"allowed_vendors": {
|
|
173
|
+
"source": "declared",
|
|
174
|
+
"description": "Vendor name for this purchase (checked against approved list)",
|
|
175
|
+
"required": false,
|
|
176
|
+
"constraint": {
|
|
177
|
+
"type": "string",
|
|
178
|
+
"enforceable": [
|
|
179
|
+
"subset"
|
|
180
|
+
]
|
|
181
|
+
}
|
|
182
|
+
},
|
|
183
|
+
"spend_daily": {
|
|
184
|
+
"source": "cumulative",
|
|
185
|
+
"cumulativeField": "spend",
|
|
186
|
+
"window": "daily",
|
|
187
|
+
"description": "Running daily spend total (resolved from execution log)",
|
|
188
|
+
"required": true,
|
|
189
|
+
"constraint": {
|
|
190
|
+
"type": "number",
|
|
191
|
+
"enforceable": [
|
|
192
|
+
"max"
|
|
193
|
+
]
|
|
194
|
+
}
|
|
195
|
+
},
|
|
196
|
+
"spend_monthly": {
|
|
197
|
+
"source": "cumulative",
|
|
198
|
+
"cumulativeField": "spend",
|
|
199
|
+
"window": "monthly",
|
|
200
|
+
"description": "Running monthly spend total (resolved from execution log)",
|
|
201
|
+
"required": true,
|
|
202
|
+
"constraint": {
|
|
203
|
+
"type": "number",
|
|
204
|
+
"enforceable": [
|
|
205
|
+
"max"
|
|
206
|
+
]
|
|
207
|
+
}
|
|
208
|
+
},
|
|
209
|
+
"transaction_count_daily": {
|
|
210
|
+
"source": "cumulative",
|
|
211
|
+
"cumulativeField": "_count",
|
|
212
|
+
"window": "daily",
|
|
213
|
+
"description": "Running daily transaction count (resolved from execution log)",
|
|
214
|
+
"required": true,
|
|
215
|
+
"constraint": {
|
|
216
|
+
"type": "number",
|
|
217
|
+
"enforceable": [
|
|
218
|
+
"max"
|
|
219
|
+
]
|
|
220
|
+
}
|
|
221
|
+
}
|
|
222
|
+
}
|
|
223
|
+
},
|
|
224
|
+
"requiredGates": [
|
|
225
|
+
"bounds",
|
|
226
|
+
"intent",
|
|
227
|
+
"commitment",
|
|
228
|
+
"mandate_owner"
|
|
229
|
+
],
|
|
230
|
+
"ttl": {
|
|
231
|
+
"default": 86400,
|
|
232
|
+
"max": 2592000
|
|
233
|
+
},
|
|
234
|
+
"retention_minimum": 7776000
|
|
235
|
+
}
|
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
{
|
|
2
|
+
"id": "github.com/humanagencyprotocol/hap-profiles/records@0.6",
|
|
3
|
+
"name": "Records",
|
|
4
|
+
"version": "0.6",
|
|
5
|
+
"description": "Records authority — governs accessing and managing personal structured data",
|
|
6
|
+
"whatsNew": "Protocol v0.7 wording: the scope schema replaces the context schema, and the required gate is the Mandate Owner. Limits and scope are unchanged.",
|
|
7
|
+
"boundsSchema": {
|
|
8
|
+
"actionTypes": [
|
|
9
|
+
"archive",
|
|
10
|
+
"delete",
|
|
11
|
+
"write"
|
|
12
|
+
],
|
|
13
|
+
"keyOrder": [
|
|
14
|
+
"profile",
|
|
15
|
+
"read_access",
|
|
16
|
+
"write_daily_max",
|
|
17
|
+
"delete_access",
|
|
18
|
+
"archive_access"
|
|
19
|
+
],
|
|
20
|
+
"fields": {
|
|
21
|
+
"profile": {
|
|
22
|
+
"type": "string",
|
|
23
|
+
"required": true
|
|
24
|
+
},
|
|
25
|
+
"read_access": {
|
|
26
|
+
"type": "string",
|
|
27
|
+
"required": true,
|
|
28
|
+
"displayName": "Read access",
|
|
29
|
+
"description": "Allow the agent to list, view, and search your records",
|
|
30
|
+
"boundType": {
|
|
31
|
+
"kind": "enum",
|
|
32
|
+
"values": [
|
|
33
|
+
"unlimited",
|
|
34
|
+
"none"
|
|
35
|
+
]
|
|
36
|
+
},
|
|
37
|
+
"toolsDescription": "list_records, get_record, search_records",
|
|
38
|
+
"default": "unlimited"
|
|
39
|
+
},
|
|
40
|
+
"write_daily_max": {
|
|
41
|
+
"type": "number",
|
|
42
|
+
"required": true,
|
|
43
|
+
"displayName": "Daily create limit",
|
|
44
|
+
"description": "Maximum new records the agent can create per day",
|
|
45
|
+
"unit": "count",
|
|
46
|
+
"boundType": {
|
|
47
|
+
"kind": "cumulative_count",
|
|
48
|
+
"window": "daily"
|
|
49
|
+
},
|
|
50
|
+
"appliesTo": [
|
|
51
|
+
"write"
|
|
52
|
+
]
|
|
53
|
+
},
|
|
54
|
+
"delete_access": {
|
|
55
|
+
"type": "string",
|
|
56
|
+
"required": true,
|
|
57
|
+
"displayName": "Delete access",
|
|
58
|
+
"description": "Allow the agent to permanently delete records",
|
|
59
|
+
"boundType": {
|
|
60
|
+
"kind": "enum",
|
|
61
|
+
"values": [
|
|
62
|
+
"allowed",
|
|
63
|
+
"none"
|
|
64
|
+
]
|
|
65
|
+
},
|
|
66
|
+
"toolsDescription": "delete_record",
|
|
67
|
+
"default": "none"
|
|
68
|
+
},
|
|
69
|
+
"archive_access": {
|
|
70
|
+
"type": "string",
|
|
71
|
+
"required": true,
|
|
72
|
+
"displayName": "Archive access",
|
|
73
|
+
"description": "Allow the agent to archive records (non-destructive, records remain accessible)",
|
|
74
|
+
"boundType": {
|
|
75
|
+
"kind": "enum",
|
|
76
|
+
"values": [
|
|
77
|
+
"allowed",
|
|
78
|
+
"none"
|
|
79
|
+
]
|
|
80
|
+
},
|
|
81
|
+
"toolsDescription": "archive_record",
|
|
82
|
+
"default": "none"
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
},
|
|
86
|
+
"executionContextSchema": {
|
|
87
|
+
"fields": {
|
|
88
|
+
"write_count_daily": {
|
|
89
|
+
"source": "cumulative",
|
|
90
|
+
"cumulativeField": "_count",
|
|
91
|
+
"window": "daily",
|
|
92
|
+
"description": "Running daily create operation count",
|
|
93
|
+
"required": true,
|
|
94
|
+
"constraint": {
|
|
95
|
+
"type": "number",
|
|
96
|
+
"enforceable": [
|
|
97
|
+
"max"
|
|
98
|
+
]
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
},
|
|
103
|
+
"requiredGates": [
|
|
104
|
+
"bounds",
|
|
105
|
+
"intent",
|
|
106
|
+
"commitment",
|
|
107
|
+
"mandate_owner"
|
|
108
|
+
],
|
|
109
|
+
"ttl": {
|
|
110
|
+
"default": 86400,
|
|
111
|
+
"max": 31536000
|
|
112
|
+
},
|
|
113
|
+
"retention_minimum": 7776000,
|
|
114
|
+
"content_binding": {
|
|
115
|
+
"version": "1",
|
|
116
|
+
"kind": "jcs"
|
|
117
|
+
}
|
|
118
|
+
}
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
{
|
|
2
|
+
"id": "github.com/humanagencyprotocol/hap-profiles/reporting@0.3",
|
|
3
|
+
"name": "Reporting",
|
|
4
|
+
"version": "0.3",
|
|
5
|
+
"description": "Reporting authority — lets an agent read the evidence a gateway holds (tickets, approvals, mandates, records in the systems it connects) and write one report stored on that machine. Changes no system.",
|
|
6
|
+
"whatsNew": "Protocol v0.7 wording: the scope schema replaces the context schema, and the required gate is the Mandate Owner. Limits and scope are unchanged.",
|
|
7
|
+
"boundsSchema": {
|
|
8
|
+
"actionTypes": [
|
|
9
|
+
"report"
|
|
10
|
+
],
|
|
11
|
+
"keyOrder": [
|
|
12
|
+
"profile",
|
|
13
|
+
"read_access",
|
|
14
|
+
"read_max_age_days",
|
|
15
|
+
"report_daily_max"
|
|
16
|
+
],
|
|
17
|
+
"fields": {
|
|
18
|
+
"profile": {
|
|
19
|
+
"type": "string",
|
|
20
|
+
"required": true
|
|
21
|
+
},
|
|
22
|
+
"read_access": {
|
|
23
|
+
"type": "string",
|
|
24
|
+
"required": true,
|
|
25
|
+
"displayName": "Read evidence",
|
|
26
|
+
"description": "Allow the agent to read tickets, approvals, mandates and the records in connected systems, to build a report",
|
|
27
|
+
"boundType": {
|
|
28
|
+
"kind": "enum",
|
|
29
|
+
"values": [
|
|
30
|
+
"unlimited",
|
|
31
|
+
"none"
|
|
32
|
+
]
|
|
33
|
+
},
|
|
34
|
+
"toolsDescription": "tickets, approvals, mandates, system records",
|
|
35
|
+
"default": "unlimited"
|
|
36
|
+
},
|
|
37
|
+
"read_max_age_days": {
|
|
38
|
+
"type": "number",
|
|
39
|
+
"required": true,
|
|
40
|
+
"displayName": "Reporting window (days)",
|
|
41
|
+
"description": "How far back the agent may read evidence for a report: tickets, approvals, mandates and records from the last N days, at most 366. Anything older is invisible to the agent and cannot enter a report or an export. Enforced locally by the gateway (reads carry no ticket); signed here so the window the owner approved is part of the mandate.",
|
|
42
|
+
"unit": "days",
|
|
43
|
+
"boundType": {
|
|
44
|
+
"kind": "per_transaction",
|
|
45
|
+
"of": "read_age_days"
|
|
46
|
+
},
|
|
47
|
+
"maximum": 366,
|
|
48
|
+
"default": 30
|
|
49
|
+
},
|
|
50
|
+
"report_daily_max": {
|
|
51
|
+
"type": "number",
|
|
52
|
+
"required": true,
|
|
53
|
+
"displayName": "Report updates per day",
|
|
54
|
+
"description": "Maximum times per day the agent may write or replace the report",
|
|
55
|
+
"unit": "count",
|
|
56
|
+
"boundType": {
|
|
57
|
+
"kind": "cumulative_count",
|
|
58
|
+
"window": "daily"
|
|
59
|
+
},
|
|
60
|
+
"appliesTo": [
|
|
61
|
+
"report"
|
|
62
|
+
]
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
},
|
|
66
|
+
"executionContextSchema": {
|
|
67
|
+
"fields": {
|
|
68
|
+
"report_count_daily": {
|
|
69
|
+
"source": "cumulative",
|
|
70
|
+
"cumulativeField": "_count",
|
|
71
|
+
"window": "daily",
|
|
72
|
+
"description": "Running daily count of report writes",
|
|
73
|
+
"required": true,
|
|
74
|
+
"constraint": {
|
|
75
|
+
"type": "number",
|
|
76
|
+
"enforceable": [
|
|
77
|
+
"max"
|
|
78
|
+
]
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
},
|
|
83
|
+
"requiredGates": [
|
|
84
|
+
"bounds",
|
|
85
|
+
"intent",
|
|
86
|
+
"commitment",
|
|
87
|
+
"mandate_owner"
|
|
88
|
+
],
|
|
89
|
+
"ttl": {
|
|
90
|
+
"default": 86400,
|
|
91
|
+
"max": 2592000
|
|
92
|
+
},
|
|
93
|
+
"retention_minimum": 7776000,
|
|
94
|
+
"content_binding": {
|
|
95
|
+
"version": "1",
|
|
96
|
+
"kind": "jcs"
|
|
97
|
+
}
|
|
98
|
+
}
|