Files
crank/crates/crank-registry/src/migrations/execution_outcome_v5.sql
T

42 lines
2.3 KiB
SQL

alter table invocation_logs
add column operation_version integer null,
add column execution_stage text null,
add column execution_error_code text null,
add column retryability text null,
add column outcome_certainty text null;
alter table invocation_logs
add constraint invocation_logs_operation_version_check
check (operation_version is null or operation_version > 0),
add constraint invocation_logs_execution_stage_check
check (execution_stage is null or execution_stage in (
'authorization', 'input_schema', 'input_mapping', 'request_preparation',
'admission', 'adapter', 'upstream', 'output_mapping', 'output_schema',
'mandatory_persistence', 'runtime'
)),
add constraint invocation_logs_execution_error_code_check
check (execution_error_code is null or execution_error_code in (
'authorization_denied', 'auth_profile_not_found', 'secret_not_found',
'secret_invalid', 'input_schema_invalid', 'input_mapping_invalid',
'prepared_request_invalid', 'execution_overloaded', 'safety_store_unavailable',
'protocol_unsupported', 'execution_mode_unsupported',
'adapter_configuration_invalid', 'outbound_target_rejected',
'upstream_auth_error', 'upstream_not_found', 'upstream_rate_limited',
'upstream_server_error', 'upstream_status_error', 'upstream_timeout',
'upstream_transport_error', 'upstream_request_too_large',
'upstream_response_too_large',
'output_mapping_invalid', 'output_schema_invalid', 'persistence_unavailable',
'runtime_internal', 'confirmation_required', 'confirmation_invalid',
'idempotency_in_progress', 'idempotency_conflict', 'idempotency_outcome_unknown'
)),
add constraint invocation_logs_retryability_check
check (retryability is null or retryability in (
'never', 'safe', 'after_delay', 'manual_reconcile', 'requires_confirmation'
)),
add constraint invocation_logs_outcome_certainty_check
check (outcome_certainty is null or outcome_certainty in ('certain', 'outcome_unknown'));
create index invocation_logs_workspace_operation_version_idx
on invocation_logs(workspace_id, operation_id, operation_version)
where operation_version is not null;