Appearance
Entity: externalConnectorLog
Entity Type: Database table (append-only — a row is written once and never modified; there is no updatedAt, updatedBy or deletedAt, since a log entry represents a fact about a past call that cannot itself be corrected in place)
Description: Append-only record of every call made through an externalConnectorConfig, used for diagnostics and monitoring.
Data Attributes Table
| Attribute Name | Description | Data Type | Default Value | Required (= Nullable) | Unique | Format | Validations | Index | Example |
|---|---|---|---|---|---|---|---|---|---|
| id | Primary key of the entity. | UUID | Generated in code (app layer) | Yes | Yes | UUID v7 | Must be a unique identifier. | Primary Key | 018ed0b3-c298-7c7a-96d5-8b36f5a7f8d2 |
| tenantId | Tenant this call was made on behalf of. | UUID | - | Yes | No | UUID v7 | Foreign Key → tenant | name: idx_externalConnectorLog_tenantId_createdAt, type: btree | 018fa51f-fda1-79f4-8461-2cb8f1cabc10 |
| connectorConfigId | The connector configuration this call was made through. | UUID | - | Yes | No | UUID v7 | Foreign Key → externalConnectorConfig | name: idx_externalConnectorLog_connectorConfigId, type: btree | 018ed0b3-c298-... |
| endpoint | The endpoint or operation that was called. | String | - | Yes | No | - | - | - | /business/v1/invoice/list |
| status | Outcome of the call. | String | - | Yes | No | enum.externalConnectorLogStatus | One of: success, error, skipped. | - | success |
| responseStatus | HTTP status code returned by the provider, if applicable. | Integer | - | No | No | - | - | - | 200 |
| errorMessage | Human-readable error detail, if the call did not succeed. | String | - | No | No | - | - | - | Timeout after 3s |
| relatedEntityType | Name of the entity this call produced or affected, if any. | String | - | No | No | - | - | - | invoice |
| relatedEntityId | Identifier of the related entity. | UUID | - | No | No | - | No foreign key — the log entry is retained even if the related record is later deleted. | - | 018ed0b3-c298-... |
| createdAt | Timestamp of when the call was made. Immutable. | Timestamp with time zone | now() — set in code | Yes | No | ISO 8601 — YYYY-MM-DDTHH:mm:ss.SSSZ | Cannot be null; cannot be modified after creation. | name: idx_externalConnectorLog_tenantId_createdAt, type: btree | 2026-06-15T04:00:00Z |
| createdBy | Identifier of the actor that made the call. | String | - | Yes | No | type:actor — e.g. system:job-name | Non-empty. | - | system:market-price-ingest |
Note. This entity has no updatedAt, updatedBy or deletedAt — documented on the source page as a deliberate append-only design (a log entry is a fact about a past call and is never corrected in place).
Audited fields
Recorded on created only — this entity is explicitly append-only (no updatedAt/updatedBy/deletedAt at all; a log entry is a fact about a past call and is never corrected in place): connectorConfigId, endpoint, status, responseStatus, errorMessage, relatedEntityType, relatedEntityId.
Excluded: none.
Every entry would carry subjectEntityType = externalConnectorConfig / subjectEntityId = connectorConfigId — a call's own record already is a domain-specific log; per the same rule applied to readingActionLog, already having a history of its own is not a reason to exempt an entity from audit adoption, so this would still get its own entries in the generic trail.
Not registered for entityName resolution — a log entry identified by its connectorConfigId and timestamp, not a name of its own.