@suveren/gateway 0.19.4 → 0.20.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/content/guides/1-interview.md +6 -0
- package/content/guides/2-package.md +4 -1
- package/content/guides/3-mandates.md +3 -0
- package/content/guides/6-risks.md +2 -0
- 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 +382 -97
- package/dist/mcp-server/report-verify-cli.mjs +1 -1
- package/dist/ui/assets/index-1gCMlbLl.js +116 -0
- package/dist/ui/assets/{index-RCFQUjaF.css → index-blnpvM2g.css} +1 -1
- package/dist/ui/index.html +2 -2
- 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-BseWI4iJ.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,118 @@
|
|
|
1
|
+
{
|
|
2
|
+
"id": "github.com/humanagencyprotocol/hap-profiles/delegation@0.3",
|
|
3
|
+
"name": "Delegation",
|
|
4
|
+
"version": "0.3",
|
|
5
|
+
"description": "Delegation authority — lets an agent propose changes to its own setup: the agent brief and new mandates. Every proposal waits for a person's approval; nothing takes effect before it. Also lets the agent read the setup guides.",
|
|
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
|
+
"commitment_modes": [
|
|
8
|
+
"review"
|
|
9
|
+
],
|
|
10
|
+
"boundsSchema": {
|
|
11
|
+
"actionTypes": [
|
|
12
|
+
"brief",
|
|
13
|
+
"mandate"
|
|
14
|
+
],
|
|
15
|
+
"keyOrder": [
|
|
16
|
+
"profile",
|
|
17
|
+
"read_access",
|
|
18
|
+
"brief_daily_max",
|
|
19
|
+
"mandate_daily_max"
|
|
20
|
+
],
|
|
21
|
+
"fields": {
|
|
22
|
+
"profile": {
|
|
23
|
+
"type": "string",
|
|
24
|
+
"required": true
|
|
25
|
+
},
|
|
26
|
+
"read_access": {
|
|
27
|
+
"type": "string",
|
|
28
|
+
"required": true,
|
|
29
|
+
"displayName": "Read setup guides",
|
|
30
|
+
"description": "Allow the agent to read the guides for setting up a test: interview, test data, mandates, agent brief, the agent's own process, risks.",
|
|
31
|
+
"boundType": {
|
|
32
|
+
"kind": "enum",
|
|
33
|
+
"values": [
|
|
34
|
+
"unlimited",
|
|
35
|
+
"none"
|
|
36
|
+
]
|
|
37
|
+
},
|
|
38
|
+
"toolsDescription": "setup guides",
|
|
39
|
+
"default": "unlimited"
|
|
40
|
+
},
|
|
41
|
+
"brief_daily_max": {
|
|
42
|
+
"type": "number",
|
|
43
|
+
"required": true,
|
|
44
|
+
"displayName": "Brief proposals per day",
|
|
45
|
+
"description": "How many times per day the agent may propose a new agent brief. Each proposal waits for your approval.",
|
|
46
|
+
"unit": "count",
|
|
47
|
+
"boundType": {
|
|
48
|
+
"kind": "cumulative_count",
|
|
49
|
+
"window": "daily"
|
|
50
|
+
},
|
|
51
|
+
"appliesTo": [
|
|
52
|
+
"brief"
|
|
53
|
+
],
|
|
54
|
+
"default": 5
|
|
55
|
+
},
|
|
56
|
+
"mandate_daily_max": {
|
|
57
|
+
"type": "number",
|
|
58
|
+
"required": true,
|
|
59
|
+
"displayName": "Mandate proposals per day",
|
|
60
|
+
"description": "How many new mandates per day the agent may propose. Each one waits for your approval and is created only then.",
|
|
61
|
+
"unit": "count",
|
|
62
|
+
"boundType": {
|
|
63
|
+
"kind": "cumulative_count",
|
|
64
|
+
"window": "daily"
|
|
65
|
+
},
|
|
66
|
+
"appliesTo": [
|
|
67
|
+
"mandate"
|
|
68
|
+
],
|
|
69
|
+
"default": 30
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
},
|
|
73
|
+
"executionContextSchema": {
|
|
74
|
+
"fields": {
|
|
75
|
+
"brief_count_daily": {
|
|
76
|
+
"source": "cumulative",
|
|
77
|
+
"cumulativeField": "_count",
|
|
78
|
+
"window": "daily",
|
|
79
|
+
"description": "Running daily count of brief proposals",
|
|
80
|
+
"required": true,
|
|
81
|
+
"constraint": {
|
|
82
|
+
"type": "number",
|
|
83
|
+
"enforceable": [
|
|
84
|
+
"max"
|
|
85
|
+
]
|
|
86
|
+
}
|
|
87
|
+
},
|
|
88
|
+
"mandate_count_daily": {
|
|
89
|
+
"source": "cumulative",
|
|
90
|
+
"cumulativeField": "_count",
|
|
91
|
+
"window": "daily",
|
|
92
|
+
"description": "Running daily count of mandate proposals",
|
|
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": 2592000
|
|
112
|
+
},
|
|
113
|
+
"retention_minimum": 7776000,
|
|
114
|
+
"content_binding": {
|
|
115
|
+
"version": "1",
|
|
116
|
+
"kind": "jcs"
|
|
117
|
+
}
|
|
118
|
+
}
|
|
@@ -0,0 +1,177 @@
|
|
|
1
|
+
{
|
|
2
|
+
"id": "github.com/humanagencyprotocol/hap-profiles/deploy@0.11",
|
|
3
|
+
"name": "Deploy",
|
|
4
|
+
"version": "0.11",
|
|
5
|
+
"description": "Authority to make an already-built version live. Successor to deploy@0.6, which gated 'build and deploy this commit'; this gates the act of putting something in front of real users, because building is not consequential and going live is. The action is a RELEASE: it activates bytes that already exist, so the human can look at the artifact before approving and no rebuild can diverge from what was approved. Host-agnostic — the artifact identifier is a Vercel deployment id, a container image digest, an Azure slot — named by the connector manifest, never here.",
|
|
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
|
+
"release"
|
|
10
|
+
],
|
|
11
|
+
"keyOrder": [
|
|
12
|
+
"profile",
|
|
13
|
+
"release_daily_max",
|
|
14
|
+
"rollback_allowed"
|
|
15
|
+
],
|
|
16
|
+
"fields": {
|
|
17
|
+
"profile": {
|
|
18
|
+
"type": "string",
|
|
19
|
+
"required": true
|
|
20
|
+
},
|
|
21
|
+
"release_daily_max": {
|
|
22
|
+
"type": "number",
|
|
23
|
+
"required": true,
|
|
24
|
+
"displayName": "Times per day something may go live",
|
|
25
|
+
"description": "How often the agent may make a build live for real users. Counted by the Authority Server, so a compromised gateway cannot exceed it. Building a preview is NOT counted: previews harm nobody, and charging them against this limit would exhaust it before anything reached anyone.",
|
|
26
|
+
"unit": "count",
|
|
27
|
+
"boundType": {
|
|
28
|
+
"kind": "cumulative_count",
|
|
29
|
+
"window": "daily"
|
|
30
|
+
},
|
|
31
|
+
"appliesTo": [
|
|
32
|
+
"release"
|
|
33
|
+
]
|
|
34
|
+
},
|
|
35
|
+
"rollback_allowed": {
|
|
36
|
+
"type": "string",
|
|
37
|
+
"required": false,
|
|
38
|
+
"displayName": "May put a previous version back live",
|
|
39
|
+
"description": "Whether the agent may promote a PREVIOUS artifact back to live. Reverting carries different risk from releasing: the artifact being restored was approved for a moment that has passed. NOT CURRENTLY ENFORCED: no executor yet distinguishes a revert from a release — a rollback arrives as a release of older bytes and is counted by release_daily_max. Hidden from the authorization editor until an executor emits action_type \"rollback\" for it; kept in the schema so the distinction stays declared.",
|
|
40
|
+
"enum": [
|
|
41
|
+
"yes",
|
|
42
|
+
"no"
|
|
43
|
+
],
|
|
44
|
+
"boundType": {
|
|
45
|
+
"kind": "enum",
|
|
46
|
+
"values": [
|
|
47
|
+
"yes",
|
|
48
|
+
"no"
|
|
49
|
+
]
|
|
50
|
+
},
|
|
51
|
+
"enforced": false
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
},
|
|
55
|
+
"scopeSchema": {
|
|
56
|
+
"keyOrder": [
|
|
57
|
+
"allowed_repos",
|
|
58
|
+
"allowed_environments",
|
|
59
|
+
"allowed_workflows",
|
|
60
|
+
"allowed_branches"
|
|
61
|
+
],
|
|
62
|
+
"fields": {
|
|
63
|
+
"allowed_repos": {
|
|
64
|
+
"type": "string",
|
|
65
|
+
"required": true,
|
|
66
|
+
"displayName": "Allowed repositories",
|
|
67
|
+
"description": "Repositories the agent may deploy from, e.g. humanagencyprotocol/hap",
|
|
68
|
+
"constraint": {
|
|
69
|
+
"type": "string",
|
|
70
|
+
"enforceable": [
|
|
71
|
+
"subset"
|
|
72
|
+
]
|
|
73
|
+
}
|
|
74
|
+
},
|
|
75
|
+
"allowed_environments": {
|
|
76
|
+
"type": "string",
|
|
77
|
+
"required": true,
|
|
78
|
+
"displayName": "Allowed environments",
|
|
79
|
+
"description": "Deployment targets the agent may reach. Deliberately NOT an enum: hosts disagree — GitHub uses names you define, Vercel has production and preview, Netlify has deploy-preview and branch-deploy. The connector discovers the real list.",
|
|
80
|
+
"constraint": {
|
|
81
|
+
"type": "string",
|
|
82
|
+
"enforceable": [
|
|
83
|
+
"subset"
|
|
84
|
+
]
|
|
85
|
+
}
|
|
86
|
+
},
|
|
87
|
+
"allowed_workflows": {
|
|
88
|
+
"type": "string",
|
|
89
|
+
"required": true,
|
|
90
|
+
"displayName": "Allowed pipelines",
|
|
91
|
+
"description": "Named pipelines the agent may run, e.g. deploy.yml. Scoping by pipeline rather than by 'deploy' means adding CI later — a migration, an infrastructure apply — is an edit to this list, not a new profile. The limit of this approach: the grant knows a pipeline is permitted, not what it does. The name has to carry that meaning to the human signing.",
|
|
92
|
+
"constraint": {
|
|
93
|
+
"type": "string",
|
|
94
|
+
"enforceable": [
|
|
95
|
+
"subset"
|
|
96
|
+
]
|
|
97
|
+
}
|
|
98
|
+
},
|
|
99
|
+
"allowed_branches": {
|
|
100
|
+
"type": "string",
|
|
101
|
+
"required": false,
|
|
102
|
+
"displayName": "Allowed branches",
|
|
103
|
+
"description": "Branches a deployable commit may come from. Optional: a host with no branch concept leaves it empty.",
|
|
104
|
+
"constraint": {
|
|
105
|
+
"type": "string",
|
|
106
|
+
"enforceable": [
|
|
107
|
+
"subset"
|
|
108
|
+
]
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
},
|
|
113
|
+
"executionContextSchema": {
|
|
114
|
+
"fields": {
|
|
115
|
+
"action_type": {
|
|
116
|
+
"source": "static",
|
|
117
|
+
"description": "release or rollback — declared by the manifest, never taken from an agent argument",
|
|
118
|
+
"required": true,
|
|
119
|
+
"constraint": {
|
|
120
|
+
"type": "string",
|
|
121
|
+
"enforceable": [
|
|
122
|
+
"equals"
|
|
123
|
+
]
|
|
124
|
+
}
|
|
125
|
+
},
|
|
126
|
+
"allowed_repos": {
|
|
127
|
+
"source": "declared",
|
|
128
|
+
"description": "Repository this action targets, checked against the authorized set",
|
|
129
|
+
"required": true,
|
|
130
|
+
"constraint": {
|
|
131
|
+
"type": "string",
|
|
132
|
+
"enforceable": [
|
|
133
|
+
"subset"
|
|
134
|
+
]
|
|
135
|
+
}
|
|
136
|
+
},
|
|
137
|
+
"allowed_environments": {
|
|
138
|
+
"source": "declared",
|
|
139
|
+
"description": "Environment this action targets, checked against the authorized set. Recorded in the ticket, so the proof names where the release went.",
|
|
140
|
+
"required": true,
|
|
141
|
+
"constraint": {
|
|
142
|
+
"type": "string",
|
|
143
|
+
"enforceable": [
|
|
144
|
+
"subset"
|
|
145
|
+
]
|
|
146
|
+
}
|
|
147
|
+
},
|
|
148
|
+
"allowed_workflows": {
|
|
149
|
+
"source": "declared",
|
|
150
|
+
"description": "Pipeline this action runs, checked against the authorized set. Recorded in the ticket, so the proof names what ran.",
|
|
151
|
+
"required": true,
|
|
152
|
+
"constraint": {
|
|
153
|
+
"type": "string",
|
|
154
|
+
"enforceable": [
|
|
155
|
+
"subset"
|
|
156
|
+
]
|
|
157
|
+
}
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
},
|
|
161
|
+
"requiredGates": [
|
|
162
|
+
"bounds",
|
|
163
|
+
"intent",
|
|
164
|
+
"commitment",
|
|
165
|
+
"mandate_owner"
|
|
166
|
+
],
|
|
167
|
+
"ttl": {
|
|
168
|
+
"default": 2592000,
|
|
169
|
+
"max": 31536000
|
|
170
|
+
},
|
|
171
|
+
"retention_minimum": 7776000,
|
|
172
|
+
"content_binding": {
|
|
173
|
+
"version": "1",
|
|
174
|
+
"kind": "text"
|
|
175
|
+
},
|
|
176
|
+
"ticket_lookup": true
|
|
177
|
+
}
|
|
@@ -0,0 +1,226 @@
|
|
|
1
|
+
{
|
|
2
|
+
"id": "github.com/humanagencyprotocol/hap-profiles/email@0.8",
|
|
3
|
+
"name": "Email",
|
|
4
|
+
"version": "0.8",
|
|
5
|
+
"description": "Email authority — governs sending, drafting, and reading email via Gmail",
|
|
6
|
+
"whatsNew": "Protocol v0.7 wording: the scope schema replaces the context schema, and the required gate is the Mandate Owner. The daily read limit is removed: reads carry no ticket, so nothing could enforce it. Other limits and scope are unchanged.",
|
|
7
|
+
"boundsSchema": {
|
|
8
|
+
"actionTypes": [
|
|
9
|
+
"delete",
|
|
10
|
+
"send",
|
|
11
|
+
"setup"
|
|
12
|
+
],
|
|
13
|
+
"keyOrder": [
|
|
14
|
+
"profile",
|
|
15
|
+
"read_access",
|
|
16
|
+
"recipient_max",
|
|
17
|
+
"send_daily_max",
|
|
18
|
+
"read_max_age_days",
|
|
19
|
+
"setup_daily_max"
|
|
20
|
+
],
|
|
21
|
+
"fields": {
|
|
22
|
+
"profile": {
|
|
23
|
+
"type": "string",
|
|
24
|
+
"required": true
|
|
25
|
+
},
|
|
26
|
+
"recipient_max": {
|
|
27
|
+
"type": "number",
|
|
28
|
+
"required": false,
|
|
29
|
+
"displayName": "Recipients per email",
|
|
30
|
+
"description": "Maximum recipients per email",
|
|
31
|
+
"unit": "count",
|
|
32
|
+
"boundType": {
|
|
33
|
+
"kind": "per_transaction",
|
|
34
|
+
"of": "recipient_count"
|
|
35
|
+
}
|
|
36
|
+
},
|
|
37
|
+
"send_daily_max": {
|
|
38
|
+
"type": "number",
|
|
39
|
+
"required": false,
|
|
40
|
+
"displayName": "Daily send limit",
|
|
41
|
+
"description": "Maximum emails sent or drafted per day",
|
|
42
|
+
"unit": "count",
|
|
43
|
+
"boundType": {
|
|
44
|
+
"kind": "cumulative_count",
|
|
45
|
+
"window": "daily"
|
|
46
|
+
},
|
|
47
|
+
"appliesTo": [
|
|
48
|
+
"send"
|
|
49
|
+
]
|
|
50
|
+
},
|
|
51
|
+
"read_max_age_days": {
|
|
52
|
+
"type": "number",
|
|
53
|
+
"required": false,
|
|
54
|
+
"displayName": "Max email age (days)",
|
|
55
|
+
"description": "Maximum age in days for email search. Enforced locally by the Gatekeeper, never by the Authority Server: reads carry no ticket, so no signed check ever reads this value. Set it on the integration instead, where it is live-editable. Kept in the schema as the fallback for grants issued before that setting existed.",
|
|
56
|
+
"unit": "days",
|
|
57
|
+
"enforcedBy": "gatekeeper",
|
|
58
|
+
"boundType": {
|
|
59
|
+
"kind": "per_transaction",
|
|
60
|
+
"of": "read_age_days"
|
|
61
|
+
}
|
|
62
|
+
},
|
|
63
|
+
"read_access": {
|
|
64
|
+
"type": "string",
|
|
65
|
+
"required": true,
|
|
66
|
+
"displayName": "Read access",
|
|
67
|
+
"description": "Allow the agent to list and read messages in the mailbox (simulated or real). Sending is governed separately.",
|
|
68
|
+
"boundType": {
|
|
69
|
+
"kind": "enum",
|
|
70
|
+
"values": [
|
|
71
|
+
"unlimited",
|
|
72
|
+
"none"
|
|
73
|
+
]
|
|
74
|
+
},
|
|
75
|
+
"toolsDescription": "list_messages, get_message",
|
|
76
|
+
"default": "unlimited"
|
|
77
|
+
},
|
|
78
|
+
"setup_daily_max": {
|
|
79
|
+
"type": "number",
|
|
80
|
+
"required": true,
|
|
81
|
+
"displayName": "Test-data loads per day",
|
|
82
|
+
"description": "How many times per day the simulated system may be loaded with a simulation package (load_simulation). Only works while the connector runs in simulation mode, and only into an empty system — a load cannot edit or replace existing test data. 0 = not allowed. Grant it only in a separate setup mandate, never in the mandate the AI uses for its work.",
|
|
83
|
+
"unit": "count",
|
|
84
|
+
"boundType": {
|
|
85
|
+
"kind": "cumulative_count",
|
|
86
|
+
"window": "daily"
|
|
87
|
+
},
|
|
88
|
+
"appliesTo": [
|
|
89
|
+
"setup"
|
|
90
|
+
],
|
|
91
|
+
"default": 0
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
},
|
|
95
|
+
"scopeSchema": {
|
|
96
|
+
"keyOrder": [
|
|
97
|
+
"allowed_recipients",
|
|
98
|
+
"allowed_domains"
|
|
99
|
+
],
|
|
100
|
+
"fields": {
|
|
101
|
+
"allowed_recipients": {
|
|
102
|
+
"type": "string",
|
|
103
|
+
"required": false,
|
|
104
|
+
"displayName": "Allowed recipients",
|
|
105
|
+
"format": "email",
|
|
106
|
+
"description": "Comma-separated list of allowed email addresses",
|
|
107
|
+
"constraint": {
|
|
108
|
+
"type": "string",
|
|
109
|
+
"enforceable": [
|
|
110
|
+
"subset"
|
|
111
|
+
],
|
|
112
|
+
"requiredFor": [
|
|
113
|
+
"send"
|
|
114
|
+
]
|
|
115
|
+
}
|
|
116
|
+
},
|
|
117
|
+
"allowed_domains": {
|
|
118
|
+
"type": "string",
|
|
119
|
+
"required": false,
|
|
120
|
+
"displayName": "Allowed domains",
|
|
121
|
+
"format": "domain",
|
|
122
|
+
"description": "Comma-separated list of allowed recipient domains (e.g. acme.com,partner.org)",
|
|
123
|
+
"constraint": {
|
|
124
|
+
"type": "string",
|
|
125
|
+
"enforceable": [
|
|
126
|
+
"subset"
|
|
127
|
+
],
|
|
128
|
+
"requiredFor": [
|
|
129
|
+
"send"
|
|
130
|
+
]
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
},
|
|
135
|
+
"executionContextSchema": {
|
|
136
|
+
"fields": {
|
|
137
|
+
"recipient_count": {
|
|
138
|
+
"source": "declared",
|
|
139
|
+
"description": "Number of recipients in this email",
|
|
140
|
+
"required": true,
|
|
141
|
+
"constraint": {
|
|
142
|
+
"type": "number",
|
|
143
|
+
"enforceable": [
|
|
144
|
+
"max"
|
|
145
|
+
]
|
|
146
|
+
}
|
|
147
|
+
},
|
|
148
|
+
"allowed_recipients": {
|
|
149
|
+
"source": "declared",
|
|
150
|
+
"description": "Comma-separated recipient addresses from this call (checked against context)",
|
|
151
|
+
"required": false,
|
|
152
|
+
"constraint": {
|
|
153
|
+
"type": "string",
|
|
154
|
+
"enforceable": [
|
|
155
|
+
"subset"
|
|
156
|
+
]
|
|
157
|
+
}
|
|
158
|
+
},
|
|
159
|
+
"allowed_domains": {
|
|
160
|
+
"source": "declared",
|
|
161
|
+
"description": "Comma-separated unique recipient domains from this call (checked against context)",
|
|
162
|
+
"required": false,
|
|
163
|
+
"constraint": {
|
|
164
|
+
"type": "string",
|
|
165
|
+
"enforceable": [
|
|
166
|
+
"subset"
|
|
167
|
+
]
|
|
168
|
+
}
|
|
169
|
+
},
|
|
170
|
+
"send_count_daily": {
|
|
171
|
+
"source": "cumulative",
|
|
172
|
+
"cumulativeField": "_count",
|
|
173
|
+
"window": "daily",
|
|
174
|
+
"description": "Running daily send/draft count (resolved from execution log)",
|
|
175
|
+
"required": true,
|
|
176
|
+
"constraint": {
|
|
177
|
+
"type": "number",
|
|
178
|
+
"enforceable": [
|
|
179
|
+
"max"
|
|
180
|
+
]
|
|
181
|
+
}
|
|
182
|
+
},
|
|
183
|
+
"setup_count_daily": {
|
|
184
|
+
"source": "cumulative",
|
|
185
|
+
"cumulativeField": "_count",
|
|
186
|
+
"window": "daily",
|
|
187
|
+
"description": "Running daily count of test-data loads",
|
|
188
|
+
"required": true,
|
|
189
|
+
"constraint": {
|
|
190
|
+
"type": "number",
|
|
191
|
+
"enforceable": [
|
|
192
|
+
"max"
|
|
193
|
+
]
|
|
194
|
+
}
|
|
195
|
+
}
|
|
196
|
+
}
|
|
197
|
+
},
|
|
198
|
+
"requiredGates": [
|
|
199
|
+
"bounds",
|
|
200
|
+
"intent",
|
|
201
|
+
"commitment",
|
|
202
|
+
"mandate_owner"
|
|
203
|
+
],
|
|
204
|
+
"ttl": {
|
|
205
|
+
"default": 86400,
|
|
206
|
+
"max": 31536000
|
|
207
|
+
},
|
|
208
|
+
"retention_minimum": 7776000,
|
|
209
|
+
"content_binding": {
|
|
210
|
+
"version": "2",
|
|
211
|
+
"kind": "jcs",
|
|
212
|
+
"fields": [
|
|
213
|
+
"to",
|
|
214
|
+
"cc",
|
|
215
|
+
"subject",
|
|
216
|
+
"body"
|
|
217
|
+
],
|
|
218
|
+
"required_fields": [
|
|
219
|
+
"to",
|
|
220
|
+
"body"
|
|
221
|
+
],
|
|
222
|
+
"appliesTo": [
|
|
223
|
+
"send"
|
|
224
|
+
]
|
|
225
|
+
}
|
|
226
|
+
}
|
package/profiles/index.json
CHANGED
|
@@ -32,6 +32,17 @@
|
|
|
32
32
|
"github.com/humanagencyprotocol/hap-profiles/reporting@0.1": "reporting/0.1.profile.json",
|
|
33
33
|
"github.com/humanagencyprotocol/hap-profiles/delegation@0.1": "delegation/0.1.profile.json",
|
|
34
34
|
"github.com/humanagencyprotocol/hap-profiles/delegation@0.2": "delegation/0.2.profile.json",
|
|
35
|
-
"github.com/humanagencyprotocol/hap-profiles/reporting@0.2": "reporting/0.2.profile.json"
|
|
35
|
+
"github.com/humanagencyprotocol/hap-profiles/reporting@0.2": "reporting/0.2.profile.json",
|
|
36
|
+
"github.com/humanagencyprotocol/hap-profiles/calendar@0.6": "calendar/0.6.profile.json",
|
|
37
|
+
"github.com/humanagencyprotocol/hap-profiles/charge@0.6": "charge/0.6.profile.json",
|
|
38
|
+
"github.com/humanagencyprotocol/hap-profiles/customers@0.9": "customers/0.9.profile.json",
|
|
39
|
+
"github.com/humanagencyprotocol/hap-profiles/delegation@0.3": "delegation/0.3.profile.json",
|
|
40
|
+
"github.com/humanagencyprotocol/hap-profiles/deploy@0.11": "deploy/0.11.profile.json",
|
|
41
|
+
"github.com/humanagencyprotocol/hap-profiles/email@0.8": "email/0.8.profile.json",
|
|
42
|
+
"github.com/humanagencyprotocol/hap-profiles/publish@0.6": "publish/0.6.profile.json",
|
|
43
|
+
"github.com/humanagencyprotocol/hap-profiles/purchase@0.7": "purchase/0.7.profile.json",
|
|
44
|
+
"github.com/humanagencyprotocol/hap-profiles/records@0.6": "records/0.6.profile.json",
|
|
45
|
+
"github.com/humanagencyprotocol/hap-profiles/reporting@0.3": "reporting/0.3.profile.json",
|
|
46
|
+
"github.com/humanagencyprotocol/hap-profiles/sales@0.4": "sales/0.4.profile.json"
|
|
36
47
|
}
|
|
37
48
|
}
|