GeassNetworkLog
A GeassNetworkLog is a schema for one HTTP access-log record: the project, environment and service, the host, method and path of a request, the status code and the latency. It holds request metadata only, never request or response bodies.
Summary
Section titled “Summary”| Property | Value |
|---|---|
| API version | geass.geass.dev/v1alpha1 |
| Kind | GeassNetworkLog |
| Plural | geassnetworklogs |
| Scope | Namespaced |
| Namespace | geass-system, by convention |
| Subresources | None. The kind has no status. |
| Printer columns | None |
Example
Section titled “Example”This is what a record looks like if something writes one.
apiVersion: geass.geass.dev/v1alpha1kind: GeassNetworkLogmetadata: name: storefront-1760000000-a1b2c3 namespace: geass-systemspec: project: proj-1a2b3c4d environment: production app: storefront timestamp: "2026-10-12T09:00:00Z" host: shop.example.com method: GET path: /checkout status: 200 latencyMillis: 42 upstreamOutcome: okSpec fields
Section titled “Spec fields”| Field | Type | Default | Validation | Meaning |
|---|---|---|---|---|
spec.project |
string | none | Required | The project ID. |
spec.environment |
string | none | Required | The environment. |
spec.app |
string | none | Required | The service that answered. |
spec.timestamp |
time | none | Required | When the request happened. The retention check uses it. |
spec.host |
string | none | none | The Host of the request. |
spec.method |
string | none | none | The HTTP method. |
spec.path |
string | none | none | The request path. |
spec.status |
integer | none | 32-bit integer | The response status code. |
spec.latencyMillis |
integer | none | 64-bit integer | How long the request took, in milliseconds. |
spec.upstreamOutcome |
string | none | none | A free-form note on how the upstream answered. |
What happens under the hood
Section titled “What happens under the hood”The operator runs a controller for the kind. For each record it compares spec.timestamp with the retention, 7 days by default, and deletes the record when it is older. If it is not old enough, it looks at the record again after half the retention (3.5 days), so a record can outlive its retention by up to that long. A record with an empty timestamp is never deleted. The operator’s role can create, delete, get, list and watch the kind, and it cannot update it.
The retention is a field of the controller, and the operator does not set it from any flag, environment variable or resource, so 7 days is what you get.
The traefikAccessLogs block of the GeassPlatformConfig (enabled, format, networkLogEndpoint) is in the schema and nothing reads it.
kubectl -n geass-system get geassnetworklogsOn a cluster installed from the current code this lists nothing.
Editing by hand
Section titled “Editing by hand”You can create and delete records, but there is nothing to gain: they do not appear anywhere, and the operator removes them after seven days. Do not store personal data in them.
Troubleshooting
Section titled “Troubleshooting”The list is empty. That is expected. Nothing writes these records.
I set traefikAccessLogs.enabled on the platform configuration and nothing happens. The field is not used. See the caution at the top of this page.