-
Notifications
You must be signed in to change notification settings - Fork 304
feat: signals for authorization & abuse #203
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Changes from 5 commits
3eb3b3a
cf56517
a1af2ca
7d50b2c
26bcf4a
526e8a2
f40c9fe
d37ed3e
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -90,4 +90,5 @@ vulnz | |
| worktree | ||
| yaml | ||
| yml | ||
| jwks | ||
| keyid | ||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -59,6 +59,16 @@ | |
| }, | ||
| "ucp_response": "omit" | ||
| }, | ||
| "signals": { | ||
| "$ref": "types/signals.json", | ||
| "description": "Transaction environment data attested by the platform to support authorization decisions and abuse prevention.", | ||
| "ucp_request": { | ||
| "create": "optional", | ||
| "update": "optional", | ||
| "complete": "optional" | ||
| }, | ||
| "ucp_response": "omit" | ||
|
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Can you comment on why we don’t reflect these back in the response? I am not going to die on this hill, but as I mentioned in our initial discussion, I find it odd that this is one of the few platform-provided fields they would need to keep the state of themselves, since they can’t read the current values from a
Contributor
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. You found the honeypot. I don't have a strong philosophical objection to removing |
||
| }, | ||
| "status": { | ||
| "type": "string", | ||
| "enum": [ | ||
|
|
||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,22 @@ | ||
| { | ||
| "$schema": "https://json-schema.org/draft/2020-12/schema", | ||
| "$id": "https://ucp.dev/schemas/shopping/types/signals.json", | ||
| "title": "Signals", | ||
| "description": "Transaction environment data provided by the platform to support authorization decisions and abuse prevention. Values MUST NOT be buyer-asserted claims — platforms provide signals based on direct observation or independently verifiable third-party attestations. All signal keys MUST use reverse-domain naming to ensure provenance and prevent collisions when multiple extensions contribute to the shared namespace.", | ||
| "type": "object", | ||
| "propertyNames": { | ||
| "pattern": "^[a-z][a-z0-9]*(?:\\.[a-z][a-z0-9_]*)+$", | ||
| "description": "Reverse-domain identifier (e.g., dev.ucp.buyer_ip, com.example.device_id)." | ||
| }, | ||
| "properties": { | ||
| "dev.ucp.buyer_ip": { | ||
igrigorik marked this conversation as resolved.
Show resolved
Hide resolved
|
||
| "type": "string", | ||
| "description": "Client's IP address (IPv4 or IPv6)." | ||
| }, | ||
| "dev.ucp.user_agent": { | ||
| "type": "string", | ||
| "description": "Client's HTTP User-Agent header or equivalent." | ||
| } | ||
| }, | ||
| "additionalProperties": true | ||
| } | ||
Uh oh!
There was an error while loading. Please reload this page.