Audit & Event Functions¶
Functions for audit logging, event tracking, and journal management. The system provides two complementary audit mechanisms: user events for security-related activity (logins, lockouts, permission changes) and the journal for general-purpose structured logging with templated messages.
Source: 028_functions_auth_event.sql, 018_functions_public.sql
See also: Audit & Notifications concept page for an overview of storage modes, notification channels, and retention strategies.
User Event Creation¶
auth.create_user_event¶
Creates a user event audit record. This is a thin wrapper around unsecure.create_user_event -- it delegates all logic (username resolution, storage mode handling, pg_notify) to the unsecure layer.
| Parameter | Type | Default | Description |
|---|---|---|---|
_created_by |
text | -- | Identifier of the user or system performing the action |
_user_id |
bigint | -- | ID of the requesting user |
_correlation_id |
text | -- | Correlation ID for tracing across systems |
_event_type_code |
text | -- | Event type code (e.g. 'user_logged_in', 'user_locked', 'change_password') |
_target_user_id |
bigint | -- | ID of the user the event is about |
_request_context |
jsonb | null |
Arbitrary request context (IP address, user agent, etc.) |
_event_data |
jsonb | null |
Additional event-specific data |
_target_user_oid |
text | null |
Target user's OID from the identity provider |
_target_username |
text | null |
Target user's username (auto-resolved from _target_user_id if not provided) |
Returns: table(___user_event_id bigint) -- the newly created event's ID.
Permission required: None (called internally by other permission-checked functions)
Source: 028_functions_auth_event.sql:13
Note
The underlying unsecure.create_user_event respects the user_event.storage_mode system parameter. When set to 'notify', events are sent via pg_notify on the user_events channel instead of being inserted into the table. When set to 'both', events are both stored and notified.
User Event Queries¶
auth.search_user_events¶
Paginated search across user events with optional filters. Supports filtering by event type, target user, request context (JSONB containment), correlation ID, and date range.
| Parameter | Type | Default | Description |
|---|---|---|---|
_user_id |
bigint | -- | ID of the requesting user (used for permission check) |
_correlation_id |
text | null |
Correlation ID for permission check tracing |
_search_criteria |
jsonb | null |
Search filters (see criteria keys below) |
_page |
integer | 1 |
Page number (1-based) |
_page_size |
integer | 10 |
Number of results per page |
_tenant_id |
integer | 1 |
Tenant context |
_target_tenant_id |
integer | null |
Cross-tenant: query a specific tenant's data (admin only) |
Criteria keys:
| Key | Type | Description |
|---|---|---|
event_type_code |
text | Filter by event type code (e.g. 'user_logged_in') |
target_user_id |
bigint | Filter by the user the event is about |
request_context |
jsonb | JSONB containment filter on request_context (e.g. {"ip": "192.168.1.1"}) |
correlation_id |
text | Filter by correlation ID |
from |
timestamptz | Start of date range (defaults to 100 years ago) |
to |
timestamptz | End of date range (defaults to 100 years from now) |
Returns: table(__user_event_id bigint, __event_type_code text, __requester_user_id bigint, __requester_username text, __target_user_id bigint, __target_username text, __target_user_oid text, __request_context jsonb, __event_data jsonb, __correlation_id text, __created_at timestamptz, __created_by text, __total_items bigint)
Permission required: authentication.read_user_events
Source: 028_functions_auth_event.sql:34
auth.get_user_audit_trail¶
Returns a unified, paginated timeline combining both journal entries and user events for a specific user. Journal entries are matched by the user key in keys JSONB, and user events are matched by target_user_id. Results are merged and sorted by creation date descending.
| Parameter | Type | Default | Description |
|---|---|---|---|
_user_id |
bigint | -- | ID of the requesting user (used for permission check) |
_correlation_id |
text | null |
Used for permission check tracing |
_search_criteria |
jsonb | null |
Search filters (see criteria keys below) |
_page |
integer | 1 |
Page number (1-based) |
_page_size |
integer | 20 |
Number of results per page (capped at 100) |
_tenant_id |
integer | 1 |
Tenant context |
_target_tenant_id |
integer | null |
Cross-tenant: query a specific tenant's data (admin only) |
Criteria keys:
| Key | Type | Description |
|---|---|---|
target_user_id |
bigint | The user whose audit trail to retrieve |
from |
timestamptz | Start of date range (defaults to 100 years ago) |
to |
timestamptz | End of date range (defaults to 100 years from now) |
Returns: table(__source text, __event_id integer, __event_type_code text, __event_category text, __message text, __request_context jsonb, __event_data jsonb, __correlation_id text, __created_at timestamptz, __created_by text, __total_items bigint)
The __source column indicates whether each row came from 'journal' or 'user_event'. For journal rows, the __message column contains the formatted message template resolved with payload values.
Permission required: authentication.read_user_events
Source: 028_functions_auth_event.sql:125
auth.get_security_events¶
Returns an aggregated, paginated view of security-relevant events from both user events and journal entries. User events are filtered to security-sensitive types (failed logins, lockouts, disables/enables). Journal entries are filtered to permission denial events (event_id = 32001).
| Parameter | Type | Default | Description |
|---|---|---|---|
_user_id |
bigint | -- | ID of the requesting user (used for permission check) |
_correlation_id |
text | null |
Used for permission check tracing |
_search_criteria |
jsonb | null |
Search filters (see criteria keys below) |
_page |
integer | 1 |
Page number (1-based) |
_page_size |
integer | 20 |
Number of results per page (capped at 100) |
_tenant_id |
integer | 1 |
Tenant context |
_target_tenant_id |
integer | null |
Cross-tenant: query a specific tenant's data (admin only) |
Criteria keys:
| Key | Type | Description |
|---|---|---|
from |
timestamptz | Start of date range (defaults to 100 years ago) |
to |
timestamptz | End of date range (defaults to 100 years from now) |
Returns: table(__source text, __event_type_code text, __requester_user_id bigint, __requester_username text, __target_user_id bigint, __target_username text, __request_context jsonb, __event_data jsonb, __correlation_id text, __created_at timestamptz, __total_items bigint)
Included event types:
| Source | Event Types |
|---|---|
user_event |
user_login_failed, user_locked, user_disabled, user_unlocked, user_enabled, identity_disabled, identity_enabled |
journal |
Permission denials (event_id 32001 / err_no_permission) |
Permission required: authentication.read_user_events
Source: 028_functions_auth_event.sql:236
Journal Entry Creation¶
public.create_journal_message¶
Core function for creating structured journal entries. Respects the journal level setting (journal.level in const.sys_param) and storage mode (journal.storage_mode). Read-only events can be suppressed via the journal level.
| Parameter | Type | Default | Description |
|---|---|---|---|
_created_by |
text | -- | Identifier of the user or system performing the action |
_user_id |
bigint | -- | ID of the requesting user |
_correlation_id |
text | -- | Correlation ID for tracing |
_event_id |
integer | -- | Event ID from const.event_code table |
_keys |
jsonb | null |
Entity references (e.g. {"order": 3, "item": 5}) |
_payload |
jsonb | null |
Template values and additional data (e.g. {"username": "john"}) |
_tenant_id |
integer | 1 |
Tenant context for the journal entry |
_request_context |
jsonb | null |
Arbitrary request context |
Returns: table(__created_at timestamptz, __created_by text, __correlation_id text, __journal_id bigint, __tenant_id integer, __event_id integer, __user_id bigint, __keys jsonb, __data_payload jsonb, __request_context jsonb) -- the inserted journal row (empty if suppressed by level or storage mode).
Permission required: None (called internally by other functions)
Source: 018_functions_public.sql:202
Storage modes
The journal.storage_mode system parameter controls where journal entries go:
'local'(default) -- INSERT into thejournaltable only'notify'-- send viapg_notifyon thejournal_eventschannel only, skip INSERT'both'-- INSERT andpg_notify
public.create_journal_message_by_code¶
Creates a journal entry using an event code string instead of a numeric event ID. Resolves the code to an ID via const.event_code, then delegates to create_journal_message.
| Parameter | Type | Default | Description |
|---|---|---|---|
_created_by |
text | -- | Identifier of the user or system performing the action |
_user_id |
bigint | -- | ID of the requesting user |
_correlation_id |
text | -- | Correlation ID for tracing |
_event_code |
text | -- | Event code string (e.g. 'user_created', 'order_placed') |
_keys |
jsonb | null |
Entity references |
_payload |
jsonb | null |
Template values and additional data |
_tenant_id |
integer | 1 |
Tenant context |
_request_context |
jsonb | null |
Arbitrary request context |
Returns: table(__created_at timestamptz, __created_by text, __correlation_id text, __journal_id bigint, __tenant_id integer, __event_id integer, __user_id bigint, __keys jsonb, __data_payload jsonb, __request_context jsonb) -- the inserted journal row.
Permission required: None
Raises: Exception if event code is not found in const.event_code.
Source: 018_functions_public.sql:253
public.create_journal_message_for_entity¶
Convenience wrapper that creates a journal entry for a single entity. Builds the _keys JSONB automatically from entity type and ID.
| Parameter | Type | Default | Description |
|---|---|---|---|
_created_by |
text | -- | Identifier of the user or system performing the action |
_user_id |
bigint | -- | ID of the requesting user |
_correlation_id |
text | -- | Correlation ID for tracing |
_event_id |
integer | -- | Event ID from const.event_code |
_entity_type |
text | -- | Entity type key (e.g. 'user', 'order', 'token') |
_entity_id |
bigint | -- | Entity's ID value |
_payload |
jsonb | null |
Template values and additional data |
_tenant_id |
integer | 1 |
Tenant context |
_request_context |
jsonb | null |
Arbitrary request context |
Returns: table(__created_at timestamptz, __created_by text, __correlation_id text, __journal_id bigint, __tenant_id integer, __event_id integer, __user_id bigint, __keys jsonb, __data_payload jsonb, __request_context jsonb) -- the inserted journal row.
Permission required: None
Source: 018_functions_public.sql:299
Example
public.create_journal_message_for_entity_by_code¶
Same as create_journal_message_for_entity but accepts an event code string instead of a numeric event ID.
| Parameter | Type | Default | Description |
|---|---|---|---|
_created_by |
text | -- | Identifier of the user or system performing the action |
_user_id |
bigint | -- | ID of the requesting user |
_correlation_id |
text | -- | Correlation ID for tracing |
_event_code |
text | -- | Event code string |
_entity_type |
text | -- | Entity type key |
_entity_id |
bigint | -- | Entity's ID value |
_payload |
jsonb | null |
Template values and additional data |
_tenant_id |
integer | 1 |
Tenant context |
_request_context |
jsonb | null |
Arbitrary request context |
Returns: table(__created_at timestamptz, __created_by text, __correlation_id text, __journal_id bigint, __tenant_id integer, __event_id integer, __user_id bigint, __keys jsonb, __data_payload jsonb, __request_context jsonb) -- the inserted journal row.
Permission required: None
Source: 018_functions_public.sql:334
Journal Queries¶
public.get_journal_entry¶
Retrieves a single journal entry by ID with its formatted message, event code, and category.
| Parameter | Type | Default | Description |
|---|---|---|---|
_user_id |
bigint | -- | ID of the requesting user (used for permission check) |
_correlation_id |
text | -- | Correlation ID for permission check tracing |
_tenant_id |
integer | -- | Tenant to scope the query |
_journal_id |
bigint | -- | ID of the journal entry to retrieve |
Returns: table(__journal_id bigint, __event_id integer, __event_code text, __event_category text, __message text, __keys jsonb, __payload jsonb, __request_context jsonb, __created_at timestamptz, __created_by text, __correlation_id text)
The __message column contains the formatted message template resolved with payload values using format_journal_message.
Permission required: journal.read_journal
Source: 018_functions_public.sql:368
public.get_journal_payload¶
Legacy function that retrieves a journal entry's payload as text. Prefer get_journal_entry for new code.
| Parameter | Type | Default | Description |
|---|---|---|---|
_user_id |
bigint | -- | ID of the requesting user (used for permission check) |
_correlation_id |
text | -- | Correlation ID for permission check tracing |
_tenant_id |
integer | -- | Tenant to scope the query |
_journal_id |
bigint | -- | ID of the journal entry to retrieve |
Returns: table(__journal_id bigint, __payload text)
Permission required: journal.read_journal
Source: 018_functions_public.sql:414
public.search_journal¶
Full-featured paginated search across journal entries. Supports text search, event filtering, JSONB containment filters on keys/payload/request_context, and date ranges. Tenant-scoped with a special global read mode for tenant 1.
| Parameter | Type | Default | Description |
|---|---|---|---|
_user_id |
bigint | -- | ID of the requesting user (used for permission check) |
_correlation_id |
text | null |
Filter by correlation ID; also used for permission check |
_search_text |
text | null |
Full-text search in data_payload JSONB (case-insensitive substring) |
_from |
timestamptz | null |
Start of date range |
_to |
timestamptz | null |
End of date range |
_target_user_id |
bigint | null |
Filter by the user who created the entry |
_event_id |
integer | null |
Filter by specific event ID |
_event_category |
text | null |
Filter by event category (e.g. 'user_event', 'group_event') |
_keys_criteria |
jsonb | null |
JSONB containment filter on keys (e.g. '{"order": 3}') |
_payload_criteria |
jsonb | null |
JSONB containment filter on data_payload |
_request_context_criteria |
jsonb | null |
JSONB containment filter on request_context |
_page |
integer | 1 |
Page number (1-based) |
_page_size |
integer | 10 |
Number of results per page |
_tenant_id |
integer | 1 |
Tenant to scope the query |
Returns: table(__journal_id bigint, __event_id integer, __event_code text, __event_category text, __user_id bigint, __message text, __keys jsonb, __request_context jsonb, __created_at timestamptz, __created_by text, __correlation_id text, __total_items bigint)
Permission required:
- For
_tenant_id = 1:journal.read_global_journal(reads across all tenants) - For other tenants:
journal.read_journal
Source: 018_functions_public.sql:552
public.search_journal_msgs¶
Legacy wrapper around search_journal that maps old-style _data_group / _data_object_id / _data_object_code parameters to JSONB keys filtering. Maintained for backwards compatibility -- new code should use search_journal directly.
| Parameter | Type | Default | Description |
|---|---|---|---|
_user_id |
bigint | -- | ID of the requesting user |
_correlation_id |
text | null |
Filter by correlation ID |
_search_text |
text | null |
Full-text search in payload |
_from |
timestamptz | null |
Start of date range |
_to |
timestamptz | null |
End of date range |
_target_user_id |
integer | null |
Filter by user ID |
_event_id |
integer | null |
Filter by event ID |
_data_group |
text | null |
Legacy entity group name (mapped to keys filter) |
_data_object_id |
bigint | null |
Legacy entity ID (mapped to keys filter) |
_data_object_code |
text | null |
Legacy entity code (mapped to keys filter) |
_payload_criteria |
jsonb | null |
JSONB containment filter on payload |
_page |
integer | 1 |
Page number |
_page_size |
integer | 10 |
Results per page |
_tenant_id |
integer | 1 |
Tenant scope |
Returns: table(__created timestamptz, __created_by text, __journal_id bigint, __event_id integer, __data_group text, __data_object_id bigint, __data_object_code text, __user_id bigint, __msg text, __total_items bigint)
Permission required: journal.read_global_journal or journal.read_journal (inherited from search_journal)
Source: 018_functions_public.sql:912
Journal Helpers¶
public.journal_keys¶
Builds a JSONB object from key-value text pairs. Convenience function for constructing the _keys parameter when creating journal entries.
| Parameter | Type | Default | Description |
|---|---|---|---|
variadic _pairs |
text[] | -- | Alternating key-value pairs |
Returns: jsonb
Permission required: None
Source: 018_functions_public.sql:129
public.format_journal_message¶
Formats a message template by replacing {key} placeholders with values from a JSONB payload. Also replaces {actor} with _created_by if the placeholder exists and was not already in the payload.
| Parameter | Type | Default | Description |
|---|---|---|---|
_template |
text | -- | Message template with {key} placeholders |
_payload |
jsonb | -- | JSONB object with replacement values |
_created_by |
text | null |
Fallback value for the {actor} placeholder |
Returns: text -- the formatted message.
Permission required: None
Source: 018_functions_public.sql:140
Example
public.get_event_message_template¶
Retrieves the message template for an event in a specific language. Falls back through: requested language, then English ('en'), then the event code's title.
| Parameter | Type | Default | Description |
|---|---|---|---|
_event_id |
integer | -- | Event ID to look up |
_language_code |
text | 'en' |
Language code for the template |
Returns: text -- the message template string, or the event title if no template exists.
Permission required: None
Source: 018_functions_public.sql:174
Data Retention¶
public.purge_audit_data¶
Purges old journal entries and user events based on a retention policy. Delegates to unsecure.purge_journal and unsecure.purge_user_events, which drop entire monthly partitions older than the cutoff. Creates a journal entry recording the purge action.
| Parameter | Type | Default | Description |
|---|---|---|---|
_deleted_by |
text | -- | Identifier of the user or system performing the purge |
_user_id |
bigint | -- | ID of the requesting user (used for permission check) |
_correlation_id |
text | -- | Correlation ID for tracing |
_older_than_days |
integer | null |
Delete data older than this many days; if null, falls back to retention_days in const.sys_param for each subsystem (journal.retention_days and user_event.retention_days) |
Returns: table(__journal_deleted bigint, __user_events_deleted bigint) -- counts of deleted rows from each table.
Permission required: journal.purge_journal
Journal event: 17001 (audit_data_purged)
Source: 018_functions_public.sql:986
Warning
This operation is destructive. Purged data cannot be recovered. Both the journal and user_event tables are partitioned by month, so the purge drops entire monthly partitions that fall before the retention cutoff.
Event Code Management¶
Functions for managing the event type catalog at runtime. System events (is_system = true) are protected from deletion. Application-specific events should use the 50000+ range.
public.create_event_category¶
Creates a new event category with a reserved numeric range for event IDs.
| Parameter | Type | Default | Description |
|---|---|---|---|
_created_by |
text | -- | Identifier of the creator |
_user_id |
bigint | -- | ID of the requesting user |
_correlation_id |
text | -- | Correlation ID for tracing |
_category_code |
text | -- | Unique category code (e.g. 'order_events') |
_title |
text | -- | Human-readable category title |
_range_start |
integer | -- | Start of the numeric range for event IDs in this category |
_range_end |
integer | -- | End of the numeric range for event IDs in this category |
_is_error |
boolean | false |
Whether events in this category represent errors |
_source |
text | null |
Source system or module that owns this category |
Returns: table(__category_code text, __range_start integer, __range_end integer, __is_error boolean, __source text) -- the created category row.
Permission required: None (no permission check in function body)
Source: 018_functions_public.sql:657
public.create_event_code¶
Creates a new event code within a category. Validates that the event ID falls within the category's reserved range. All runtime-created events have is_system = false.
| Parameter | Type | Default | Description |
|---|---|---|---|
_created_by |
text | -- | Identifier of the creator |
_user_id |
bigint | -- | ID of the requesting user |
_correlation_id |
text | -- | Correlation ID for tracing |
_event_id |
integer | -- | Numeric event ID (must be within the category's range) |
_code |
text | -- | Unique event code string (e.g. 'order_placed') |
_category_code |
text | -- | Category this event belongs to |
_title |
text | -- | Human-readable event title |
_description |
text | null |
Longer description of the event |
_is_read_only |
boolean | false |
Whether this event represents a read-only operation (affects journal level filtering) |
_source |
text | null |
Source system or module |
Returns: table(__event_id integer, __code text, __category_code text, __is_read_only boolean, __is_system boolean, __source text) -- the created event code row.
Permission required: None (no permission check in function body)
Raises: Error 31014 if category not found; error 31013 if event ID is outside the category's range.
Source: 018_functions_public.sql:697
public.create_event_message¶
Creates a message template for an event in a specific language. Templates use {key} placeholder syntax that is resolved at display time by format_journal_message.
| Parameter | Type | Default | Description |
|---|---|---|---|
_created_by |
text | -- | Identifier of the creator |
_user_id |
bigint | -- | ID of the requesting user |
_correlation_id |
text | -- | Correlation ID for tracing |
_event_id |
integer | -- | Event ID to attach the message template to |
_message_template |
text | -- | Template string with {key} placeholders |
_language_code |
text | 'en' |
Language code for this template |
Returns: table(__created_at timestamptz, __created_by text, __updated_at timestamptz, __updated_by text, __event_message_id integer, __event_id integer, __language_code text, __message_template text, __is_active boolean) -- the created message row.
Permission required: None (no permission check in function body)
Raises: Error 31011 if event code not found.
Source: 018_functions_public.sql:763
Example
public.delete_event_code¶
Deletes an event code and its associated message templates. System events (is_system = true) are protected and cannot be deleted.
| Parameter | Type | Default | Description |
|---|---|---|---|
_deleted_by |
text | -- | Identifier of the deleter |
_user_id |
bigint | -- | ID of the requesting user |
_correlation_id |
text | -- | Correlation ID for tracing |
_event_id |
integer | -- | Event ID to delete |
Returns: void
Permission required: None (no permission check in function body)
Raises: Error 31011 if event code not found; error 31010 if event is a system event.
Source: 018_functions_public.sql:804
public.delete_event_category¶
Deletes an event category. The category must have no remaining event codes (system or otherwise). System events within the category prevent deletion.
| Parameter | Type | Default | Description |
|---|---|---|---|
_deleted_by |
text | -- | Identifier of the deleter |
_user_id |
bigint | -- | ID of the requesting user |
_correlation_id |
text | -- | Correlation ID for tracing |
_category_code |
text | -- | Category code to delete |
Returns: void
Permission required: None (no permission check in function body)
Raises: Error 31014 if category not found; error 31010 if category contains system events; error 31012 if category still has non-system event codes.
Source: 018_functions_public.sql:840
public.delete_event_message¶
Deletes a single event message template. Messages belonging to system events are protected.
| Parameter | Type | Default | Description |
|---|---|---|---|
_deleted_by |
text | -- | Identifier of the deleter |
_user_id |
bigint | -- | ID of the requesting user |
_correlation_id |
text | -- | Correlation ID for tracing |
_event_message_id |
integer | -- | ID of the message template to delete |
Returns: void
Permission required: None (no permission check in function body)
Raises: Error 31011 if message not found; error 31010 if parent event is a system event.
Source: 018_functions_public.sql:873
Table Structures¶
auth.user_event¶
Stores security-related user events. Partitioned by created_at (monthly range partitions).
| Column | Type | Default | Description |
|---|---|---|---|
user_event_id |
bigint | auto-generated identity | Primary key (composite with created_at) |
created_at |
timestamptz | now() |
When the event occurred |
created_by |
text | 'unknown' |
Who created the record (max 250 chars) |
correlation_id |
text | -- | Correlation ID for cross-system tracing |
event_type_code |
text | -- | Event type (e.g. 'user_logged_in', 'user_locked') |
requester_user_id |
bigint | -- | User who triggered the action (FK to auth.user_info, set null on delete) |
requester_username |
text | -- | Username of the requester (denormalized for audit durability) |
target_user_id |
bigint | -- | User the action was performed on (FK to auth.user_info, set null on delete) |
target_user_oid |
text | -- | Target user's OID from identity provider |
target_username |
text | -- | Target user's username (denormalized) |
request_context |
jsonb | -- | Request metadata (IP, user agent, etc.) |
event_data |
jsonb | -- | Event-specific structured data |
Source: 013_tables_auth.sql:394
public.journal¶
General-purpose structured audit log. Partitioned by created_at (monthly range partitions). Messages are resolved at display time from templates in const.event_message.
| Column | Type | Default | Description |
|---|---|---|---|
journal_id |
bigint | auto-generated identity | Primary key (composite with created_at) |
created_at |
timestamptz | now() |
When the entry was created |
created_by |
text | 'unknown' |
Who created the record (max 250 chars) |
correlation_id |
text | -- | Correlation ID for cross-system tracing |
tenant_id |
integer | -- | Tenant context (FK to auth.tenant) |
event_id |
integer | -- | Event type (FK to const.event_code) |
user_id |
bigint | -- | User associated with the entry (FK to auth.user_info, set null on delete) |
keys |
jsonb | -- | Entity references (e.g. {"order": 3, "item": 5}) |
data_payload |
jsonb | -- | Template values and additional data |
request_context |
jsonb | -- | Request metadata (IP, user agent, etc.) |
Indexes: GIN indexes on keys, data_payload, and request_context; B-tree index on (tenant_id, event_id); descending index on created_at; partial index on correlation_id.
Source: 014_tables_stage.sql:49
Permission Summary¶
| Function | Required Permission |
|---|---|
auth.create_user_event |
None |
auth.search_user_events |
authentication.read_user_events |
auth.get_user_audit_trail |
authentication.read_user_events |
auth.get_security_events |
authentication.read_user_events |
public.create_journal_message |
None |
public.create_journal_message_by_code |
None |
public.create_journal_message_for_entity |
None |
public.create_journal_message_for_entity_by_code |
None |
public.get_journal_entry |
journal.read_journal |
public.get_journal_payload |
journal.read_journal |
public.search_journal |
journal.read_global_journal or journal.read_journal |
public.search_journal_msgs |
journal.read_global_journal or journal.read_journal |
public.purge_audit_data |
journal.purge_journal |
public.create_event_category |
None |
public.create_event_code |
None |
public.create_event_message |
None |
public.delete_event_code |
None |
public.delete_event_category |
None |
public.delete_event_message |
None |
public.journal_keys |
None |
public.format_journal_message |
None |
public.get_event_message_template |
None |