Aller au contenu

L'endpoint distinct et fortement autorisé

POST
/relation-tiers/v1/contact-points/{contactPointId}:reveal
curl --request POST \
--url https://example.com/relation-tiers/v1/contact-points/example:reveal \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{ "purpose": "example", "action": "example" }'
contactPointId
required
string
X-Tenant-Id
string

Facultatif — le tenant fait foi dans le jeton ; s’il est fourni, il doit être identique, et le corps ne peut jamais le choisir.

X-Correlation-Id
string
Media typeapplication/json
object
purpose
required

La finalité autorisée qui justifie la révélation.

string
action
required

L’action précise pour laquelle la valeur est demandée.

string
Examplegenerated
{
"purpose": "example",
"action": "example"
}

La valeur déchiffrée, pour cette action et cette finalité seules.

Media typeapplication/json
object
contactPointId
required
string
value
required
string
Examplegenerated
{
"contactPointId": "example",
"value": "example"
}

Aucune identité présentée (401).

L’identité présentée n’a pas la famille d’accès requise (403). Les 403 croisés entre familles sont prouvés par les tests d’assemblage. Un écart de tenant ne produit jamais ce code sur une ressource — il produit 404 (ne rien révéler).

Ressource absente ou invisible — y compris une ressource d’un autre tenant : le régime de la muraille ne révèle pas l’existence (404, jamais 403).

Media typeapplication/json

L’enveloppe d’erreur du catalogue (Problem Details) — le texte n’expose ni l’existence d’un objet d’un autre tenant, ni une donnée sensible.

object
type
required
string
title
required
string
status
required
integer
code
required
string
detail
string
instance
string
correlationId
required
string
retryable
boolean
violations
Array<object>
object
field
string
reason
string
ruleId
string
Examplegenerated
{
"type": "example",
"title": "example",
"status": 1,
"code": "example",
"detail": "example",
"instance": "example",
"correlationId": "example",
"retryable": true,
"violations": [
{
"field": "example",
"reason": "example",
"ruleId": "example"
}
]
}

Donnée comprise mais non admissible — règle identifiée (BUSINESS_RULE_VIOLATION), référence externe non résolue (REFERENCE_UNRESOLVED) ou preuve insuffisante (CAPACITY_INDETERMINATE).

Media typeapplication/json

L’enveloppe d’erreur du catalogue (Problem Details) — le texte n’expose ni l’existence d’un objet d’un autre tenant, ni une donnée sensible.

object
type
required
string
title
required
string
status
required
integer
code
required
string
detail
string
instance
string
correlationId
required
string
retryable
boolean
violations
Array<object>
object
field
string
reason
string
ruleId
string
Examplegenerated
{
"type": "example",
"title": "example",
"status": 1,
"code": "example",
"detail": "example",
"instance": "example",
"correlationId": "example",
"retryable": true,
"violations": [
{
"field": "example",
"reason": "example",
"ruleId": "example"
}
]
}