| created_at |
timestamp with time zone |
now() |
false |
|
|
Timestamp when the record was created. |
| credit_registration_ids |
uuid[] |
‘{}’::uuid[] |
false |
|
|
The ledger rows this call covered, in request item id order. This is
the replacement for the personal data removed from the bodies: debugging
walks body to registration id to ledger row, where the real values are
held in exactly one place. |
| deleted_at |
timestamp with time zone |
|
true |
|
|
Timestamp when the record was deleted. If null, the record is not
deleted. |
| duration_ms |
integer |
|
true |
|
|
Wall-clock duration of the call in milliseconds. |
| endpoint |
suotar_endpoint |
|
false |
|
|
Which Suotar endpoint was called. |
| error_item_count |
integer |
0 |
false |
|
|
How many items the response rejected. |
| error_message |
text |
|
true |
|
|
Request-level error detail, scrubbed before storage. |
| http_status |
integer |
|
true |
|
|
HTTP status returned. NULL when the request never got a
response. |
| id |
uuid |
uuid_generate_v4() |
false |
public.credit_registration_events |
|
A unique, stable identifier for the record. |
| ok_item_count |
integer |
0 |
false |
|
|
How many items the response accepted. |
| request_body_sample |
jsonb |
|
true |
|
|
Scrubbed sample of the request body: full body for at most 20 items,
otherwise the first 5 plus a count, truncated to 64 kB.
scrub_suotar_body redacts at write time on a best-effort basis: student
numbers, email addresses, access tokens and the known person fields go,
while a personal name quoted in a free-text error message is
deliberately kept because the study registry holds it anyway. Keys are
kept so the payload shape stays debuggable. Rows here are swept after 90
days. |
| request_item_count |
integer |
|
false |
|
|
How many items the batch carried. |
| request_level_error_code |
varchar(64) |
|
true |
|
|
The code returned when the whole request was rejected rather than
individual items. |
| response_body_sample |
jsonb |
|
true |
|
|
Scrubbed sample of the response body, same rules as
request_body_sample. |
| started_at |
timestamp with time zone |
|
false |
|
|
When the request was sent. The retention sweep works on this. |
| succeeded |
boolean |
|
false |
|
|
Whether the call itself succeeded at the request level. Per-item
errors do not make a call unsuccessful. |
| updated_at |
timestamp with time zone |
now() |
false |
|
|
Timestamp when the record was last updated. The field is updated
automatically by the set_timestamp trigger. |
| worker_name |
varchar(64) |
|
false |
|
|
Which worker or manual action made the call, so the submitter, the
verify poller and an admin retry are distinguishable. |