Schema

Use this reference to inspect fields, methods, accepted values and failure outcomes. For setup and working examples, start with the API guide.

Definition: abstraction.logging

Service Sink [DEF-S1]

A sink for structured log records across a service boundary.

Wire identity: abstraction.logging/sink@1

Multiple services share this namespace. Generated ServiceName (Go) and service_name (C++/Python) validate the request envelope and version before returning its service identity for routing. The selected generated dispatcher validates the method and typed arguments; the selector does not authorize callers or interpret method payloads.

Frames carry version, service, method and typed arguments. Transport owns framing, associated exchanges, deadlines and connections. Unknown version/service/method and malformed arguments are rejected before invoking a handler. One-way WriteFrame success means local submission, not remote acceptance or persistence.

Submit a log record. Completion confirms local transport submission only.

Write

oneway void

Service HistoryReader [DEF-S1]

Authorized bounded access to retained logging history. Applications receive records and opaque cursors; history location and retention belong to the provider.

Wire identity: abstraction.logging/reader@1

Handler error codes, declared by history_error_codes: caller_unavailable, identity_required, wrong_user, policy_unavailable, forbidden. Generated bindings name each as a ServiceErrorCode member beside the dispatcher's own codes.

Multiple services share this namespace. Generated ServiceName (Go) and service_name (C++/Python) validate the request envelope and version before returning its service identity for routing. The selected generated dispatcher validates the method and typed arguments; the selector does not authorize callers or interpret method payloads.

Frames carry version, service, method and typed arguments. Transport owns framing, associated exchanges, deadlines and connections. Unknown version/service/method and malformed arguments are rejected before invoking a handler. One-way WriteFrame success means local submission, not remote acceptance or persistence.

Request-response methods use ExchangeFrame. Replies carry version, service, method, ok and payload; success payload contains typed value (or an empty object for void). Error payload contains nonempty code and message, which may be empty. ServiceError preserves unknown codes. Unexpected handler failures become handler_error without private details; invalid results become invalid_result. Clients validate reply identity and result before exposing it. A malformed frame or transport failure remains a local error; the transport must associate each response with its exchange. C++ dispatchers are pure protocol bindings, not listening servers.

Read retained records through the service. Empty cursor starts at earliest retained history. Cursor end (history_cursor_words) starts at the current end: the page holds no records, at_end is true and next continues from that end. Limits are 1..256 records and 1..65536 encoded-record bytes; a first record that exceeds the byte limit gives record_too_large. A provider without history gives unavailable. Cursors may expire on restart or retention changes, reported as gap. Snapshot reads may be repeated at end; this method promises no subscription or persistence acknowledgement. The receiving service authorizes history access from native caller evidence.

Read

request-response Page

Service HistoryObserver [DEF-S1]

Authorized bounded long-poll history observation with provider-owned notifications.

Wire identity: abstraction.logging/observer@1

Handler error codes, declared by history_error_codes: caller_unavailable, identity_required, wrong_user, policy_unavailable, forbidden. Generated bindings name each as a ServiceErrorCode member beside the dispatcher's own codes.

Multiple services share this namespace. Generated ServiceName (Go) and service_name (C++/Python) validate the request envelope and version before returning its service identity for routing. The selected generated dispatcher validates the method and typed arguments; the selector does not authorize callers or interpret method payloads.

Frames carry version, service, method and typed arguments. Transport owns framing, associated exchanges, deadlines and connections. Unknown version/service/method and malformed arguments are rejected before invoking a handler. One-way WriteFrame success means local submission, not remote acceptance or persistence.

Request-response methods use ExchangeFrame. Replies carry version, service, method, ok and payload; success payload contains typed value (or an empty object for void). Error payload contains nonempty code and message, which may be empty. ServiceError preserves unknown codes. Unexpected handler failures become handler_error without private details; invalid results become invalid_result. Clients validate reply identity and result before exposing it. A malformed frame or transport failure remains a local error; the transport must associate each response with its exchange. C++ dispatchers are pure protocol bindings, not listening servers.

Read with the same bounds and cursor semantics as HistoryReader. Cursor end fixes the current end when the call begins and returns only records appended after it. At an empty current end, wait up to wait_ms (0..30000) for a provider notification, then reread once; expiry may return an empty current-end page. Cancellation stops waiting and does not undo logging. Providers without observation return unsupported. Bounded waiter capacity exhaustion returns unavailable. Authorization is rechecked before records return. This is long-poll observation; external file writers have no notification promise.

Observe

request-response Page

Service ApplicationHistoryReader [DEF-S1]

Wire identity: abstraction.logging/reader@2

Handler error codes, declared by history_identity_error_codes: caller_unavailable, identity_required, wrong_user. Generated bindings name each as a ServiceErrorCode member beside the dispatcher's own codes.

Multiple services share this namespace. Generated ServiceName (Go) and service_name (C++/Python) validate the request envelope and version before returning its service identity for routing. The selected generated dispatcher validates the method and typed arguments; the selector does not authorize callers or interpret method payloads.

Frames carry version, service, method and typed arguments. Transport owns framing, associated exchanges, deadlines and connections. Unknown version/service/method and malformed arguments are rejected before invoking a handler. One-way WriteFrame success means local submission, not remote acceptance or persistence.

Request-response methods use ExchangeFrame. Replies carry version, service, method, ok and payload; success payload contains typed value (or an empty object for void). Error payload contains nonempty code and message, which may be empty. ServiceError preserves unknown codes. Unexpected handler failures become handler_error without private details; invalid results become invalid_result. Clients validate reply identity and result before exposing it. A malformed frame or transport failure remains a local error; the transport must associate each response with its exchange. C++ dispatchers are pure protocol bindings, not listening servers.

Read one or all emitting programs. Bounds are 1..256 returned records and 1..65536 encoded Record bytes; scan work is independently bounded. Empty cursor starts earliest retained history; end fixes the current physical end. One consistent Rights snapshot governs selection and concrete outgoing emitters. No fallback to account-wide reader@1 is permitted.

Read

request-response ApplicationLogPage

Service ApplicationHistoryObserver [DEF-S1]

Wire identity: abstraction.logging/observer@2

Handler error codes, declared by history_identity_error_codes: caller_unavailable, identity_required, wrong_user. Generated bindings name each as a ServiceErrorCode member beside the dispatcher's own codes.

Multiple services share this namespace. Generated ServiceName (Go) and service_name (C++/Python) validate the request envelope and version before returning its service identity for routing. The selected generated dispatcher validates the method and typed arguments; the selector does not authorize callers or interpret method payloads.

Frames carry version, service, method and typed arguments. Transport owns framing, associated exchanges, deadlines and connections. Unknown version/service/method and malformed arguments are rejected before invoking a handler. One-way WriteFrame success means local submission, not remote acceptance or persistence.

Request-response methods use ExchangeFrame. Replies carry version, service, method, ok and payload; success payload contains typed value (or an empty object for void). Error payload contains nonempty code and message, which may be empty. ServiceError preserves unknown codes. Unexpected handler failures become handler_error without private details; invalid results become invalid_result. Clients validate reply identity and result before exposing it. A malformed frame or transport failure remains a local error; the transport must associate each response with its exchange. C++ dispatchers are pure protocol bindings, not listening servers.

Read with reader@2 semantics, waiting once at an empty physical end for 0..30000 ms. Unrelated writes can produce filtered progress. Cancellation, fixed deadline and bounded waiter capacity apply. Authorization is reevaluated before delivery; no decision is retained across waits or pages.

Observe

request-response ApplicationLogPage

Service SourceReader [DEF-S1]

Authorized bounded reads from fixed, read-only operating-system log sources.

Wire identity: abstraction.logging/source-reader@1

Handler error codes, declared by history_identity_error_codes: caller_unavailable, identity_required, wrong_user. Generated bindings name each as a ServiceErrorCode member beside the dispatcher's own codes.

Multiple services share this namespace. Generated ServiceName (Go) and service_name (C++/Python) validate the request envelope and version before returning its service identity for routing. The selected generated dispatcher validates the method and typed arguments; the selector does not authorize callers or interpret method payloads.

Frames carry version, service, method and typed arguments. Transport owns framing, associated exchanges, deadlines and connections. Unknown version/service/method and malformed arguments are rejected before invoking a handler. One-way WriteFrame success means local submission, not remote acceptance or persistence.

Request-response methods use ExchangeFrame. Replies carry version, service, method, ok and payload; success payload contains typed value (or an empty object for void). Error payload contains nonempty code and message, which may be empty. ServiceError preserves unknown codes. Unexpected handler failures become handler_error without private details; invalid results become invalid_result. Clients validate reply identity and result before exposing it. A malformed frame or transport failure remains a local error; the transport must associate each response with its exchange. C++ dispatchers are pure protocol bindings, not listening servers.

List the runtime's fixed platform source identifiers and current access status. Source IDs are not paths or query expressions. Per-source OA rights are checked before native probing; a refused source is listed as permission_denied without a native access attempt.

Sources

request-response SourceCatalog

Read one fixed source with bounds of 1..256 entries and 1..65536 encoded SourceRecord bytes. The service checks the exact source-specific right before native access. A provider without a source returns unsupported; OA policy denial returns not_permitted, known native access denial returns forbidden and uncertainty returns unavailable. Invalid semantic bounds return invalid. Refusals contain no records, preserve the supplied cursor and never announce end. Empty cursor starts at the earliest visible retained entry the native API exposes. Cursors bind source ID and reader instance; source mismatch, restart or retention loss returns gap and preserves the cursor. No cross-source ordering, complete-capture claim or observation guarantee is made.

Read

request-response SourcePage

Return an opaque baseline cursor at the source's current end without returning records. The exact source-specific right is checked before native access and rechecked before the cursor is returned. A source without a safe current-position operation returns unsupported. Use the returned cursor with Read to request entries that follow this observed end; an empty source produces a valid empty baseline. If no native entry exists at the baseline, a later retention loss before the first read may be undetectable. Cursors bind source ID and reader instance; restart or detectable retention loss returns gap. This is a cursor operation, not a watch or complete-capture guarantee.

StartAtEnd

request-response SourcePage

Encoding [DEF-E1]

settingvaluerule
escapeminimal[DEF-E2]
indent2[DEF-E3]
map_keysutf8-bytes[DEF-E4]
numbersinteger-decimal[DEF-E5]
opaqueverbatim[DEF-E6]
terminatornewline[DEF-E7]
duplicate_keyslast[DEF-E8]
depth_limit64[DEF-E9]

Types

kindtypes
built inApplicationLogSelection HistoryPageOutcome PageOutcome SourceAvailability SourceCatalogOutcome bool i64 string
declared belowProducerClaim Record
container [DEF-T3]list<SourceLimitation>
repeated record [DEF-A9]list<Attestation> list<Record> list<SourceDescriptor> list<SourceRecord>
string map [DEF-A10]map<string,string>

Named types [DEF-T2]

One spelling is written [DEF-G2] and a wider set is read [DEF-G1]; the width between them is the interoperability guarantee.

nameiswrittenread
timestampstringrfc3339-microsrfc3339-wide

Structs [DEF-T1]

A field is required, or says when it is omitted [DEF-A4]. Each struct says on its own what it does with a field name it has never heard of [DEF-A7]. A wire name never moves; where a language must spell it differently the field says so [DEF-A2].

Attestation

unknown fields grant

idfieldtypepresencenamed elsewhere
1bystringrequired—
2verifiedboolrequired—
3hopi64required—
4programstringoptional · omitted when zero—
5hoststringoptional · omitted when zero—
6userstringoptional · omitted when zero—
7exestringoptional · omitted when zero—
8uidi64required—
9gidi64required—
10pidi64required—
11keystringoptional · omitted when zero—
12macstringoptional · omitted when zero—

Record

the document [DEF-A1] · unknown fields grant

idfieldtypepresencenamed elsewhere
1schemai64required; equals 1; refusal bad_schema—
2timetimestamprequired—
3leveli64required—
4msgstringrequired—
5identitylist<Attestation>optional · omitted when zero—
6jobstringoptional · omitted when zero—
7attrsmap<string,string>optional · omitted when zero—

Page

unknown fields refuse

idfieldtypepresencenamed elsewhere
1outcomePageOutcomerequired—
2recordslist<Record>required—
3nextstringrequired—
4at_endboolrequired—

ApplicationLogTarget

unknown fields refuse

idfieldtypepresencenamed elsewhere
1selectionApplicationLogSelectionrequired—
2programstringoptional · omitted when absent—

ApplicationLogResource

unknown fields refuse

idfieldtypepresencenamed elsewhere
1programstringrequired—
2captured_file_keystringoptional · omitted when absent—

ApplicationLogPage

unknown fields refuse

idfieldtypepresencenamed elsewhere
1outcomeHistoryPageOutcomerequired—
2recordslist<Record>required—
3nextstringrequired—
4at_endboolrequired—

SourceDescriptor

unknown fields refuse

idfieldtypepresencenamed elsewhere
1idstringrequired—
2availabilitySourceAvailabilityrequired—
3limitationslist<SourceLimitation>required—

SourceCatalog

unknown fields refuse

idfieldtypepresencenamed elsewhere
1sourceslist<SourceDescriptor>required—
2outcomeSourceCatalogOutcomerequired—

ProducerClaim

unknown fields refuse

idfieldtypepresencenamed elsewhere
1providerstringoptional · omitted when zero—
2programstringoptional · omitted when zero—
3exestringoptional · omitted when zero—
4userstringoptional · omitted when zero—
5pidi64optional · omitted when zero—
6uidi64optional · omitted when zero—
7gidi64optional · omitted when zero—

SourceRecord

unknown fields refuse

idfieldtypepresencenamed elsewhere
1source_idstringrequired—
2recordRecordrequired—
3producerProducerClaimoptional · omitted when absent—

SourcePage

unknown fields refuse

idfieldtypepresencenamed elsewhere
1outcomeHistoryPageOutcomerequired—
2recordslist<SourceRecord>required—
3nextstringrequired—
4at_endboolrequired—

Enumerations [DEF-T5]

Enum fields carry JSON strings containing exact member wire spellings, never numeric IDs. Unknown names are preserved with grant and refused as bad_enum with refuse on read and write. Optional absent fields preserve presence separately from an empty string.

An enumeration is a closed vocabulary of wire names, and each one says on its own what a reader does with a member it has never heard of [DEF-A5].

PageOutcome

a member this reader does not know is refuse

idmemberwire
1pagepage
2gapgap
3unavailableunavailable
4invalid_requestinvalid_request
5record_too_largerecord_too_large
6corruptcorrupt
7unsupportedunsupported

HistoryPageOutcome

a member this reader does not know is refuse

idmemberwire
1pagepage
2gapgap
3unavailableunavailable
4invalidinvalid
5record_too_largerecord_too_large
6corruptcorrupt
7unsupportedunsupported
8forbiddenforbidden
9not_permittednot_permitted
10os_authorization_requiredos_authorization_required
11os_authorization_pendingos_authorization_pending

ApplicationLogSelection

a member this reader does not know is refuse

idmemberwire
1one_appone_app
2all_appsall_apps

SourceAvailability

a member this reader does not know is refuse

idmemberwire
1availableavailable
2permission_deniedpermission_denied
3unavailableunavailable
4unsupportedunsupported

SourceLimitation

a member this reader does not know is grant

idmemberwire
1retentionretention
2native_redactionnative_redaction
3collection_policycollection_policy
4native_accessnative_access
5visibility_unknownvisibility_unknown

SourceCatalogOutcome

a member this reader does not know is refuse

idmemberwire
1catalogcatalog
2forbiddenforbidden
3not_permittednot_permitted
4unavailableunavailable
5invalidinvalid

Constants [DEF-A6]

nametypevalue
history_error_codeslist<string>caller_unavailable, identity_required, wrong_user, policy_unavailable, forbidden
history_cursor_wordslist<string>end
history_identity_error_codeslist<string>caller_unavailable, identity_required, wrong_user

Refusal words [DEF-R1]

orderwordstage
1malformedgrammar
2bad_stringgrammar
3number_spellinggrammar
4wrong_typegrammar
5bad_timestampgrammar
6depth_exceededgrammar
7duplicate_fieldstructure
8unknown_fieldstructure
9missing_fieldstructure
10bad_schemastructure
11bad_enumstructure
12trailing_bytesdocument