Content Management that can withstand the plundering hoards

Glossary and conventions

This glossary explains terms used when editing and administering Viking sites. Follow the linked guides for operational steps; a definition alone is not a setup procedure. Example hostnames, namespace names, IDs and version strings must be replaced with your own values. Commands are normally run from repository root unless a guide says otherwise. :8080 is a listen address, not a browser URL.

Website and authoring terms

Term Meaning in Viking
CMS (content management system) The authenticated backend and browser editor used to create a site
Frontend Public Go static file server, distinct from the browser editor's JavaScript
Operator / controller Kubernetes application that watches desired Website resources and reconciles infrastructure
Publisher CMS-integrated engine that generates a static release from saved source
Draft / source Saved editable content on private storage; browser changes are unsaved until committed
Preview Private rendering for review; it does not activate public content
Release Completed generated site directory, normally named with a six-digit sequence such as 000001
Activation Moving the current-release pointer during publish or rollback
Atomic rename One filesystem operation replacing a directory entry; a reader sees one pointer or the other
Snapshot A fixed set of source/settings/assets used for one publish; a storage-provider snapshot is a separate backup mechanism
Rollback Reactivating a retained public release without changing editable drafts
Retention Number of old releases kept after safe cleanup; zero is the default
Asset / media Uploaded bytes and metadata, with a generated ID and URL
Raw object Descriptive page linked to an unchanged file served as a download attachment
Theme Shared native templates, styles and optional bundled assets around page content
Layout / shared part A theme's page template / reusable template fragment such as a header
Binding / slot Placeholder filled with a value such as page content, site title or navigation
Block Insertable piece of visual page/template content
Index / repeater Generated listing of URI children / a styled template expanded for matching pages or raw objects
Package / plugin Local ZIP containing a renderer or block pack; theme ZIPs use their own manifest
Markdown Plain-text formatting language used for source pages; Visual and Source modes edit the same content
HTML / CSS Languages for document structure / visual styling; unsafe content is sanitized
GrapesJS / Tiptap Browser engines for visual HTML/theme editing / visual Markdown editing
SPA (single-page application) Browser UI built as static JavaScript/CSS files and served by the CMS
SEO Search-engine metadata such as document title and description, not a guarantee of ranking
WXR WordPress's XML export format; import creates Markdown drafts
WASI / Wasm WebAssembly System Interface / WebAssembly; renderer packages run as bounded WASI commands in the CMS

Kubernetes and storage terms

Term Meaning
Cluster / namespace Kubernetes installation / scope grouping resources within it
kubectl / context Kubernetes command-line client / selected cluster and credential configuration
Custom resource / CRD Domain-specific object such as Website / the definition that installs its schema in Kubernetes
Spec / status / generation Desired settings / observed results / monotonically increasing spec revision indicator
Reconcile Compare desired and actual resources, then create/update/remove managed state
Pod / Deployment / replica Running container group / desired workload and rollout manager / one instance of that workload
Service / ClusterIP Stable internal traffic destination for selected pods / a cluster-internal virtual address
Ingress / IngressClass HTTP hostname/path routing resource / selection of the ingress controller implementing it
DNS Maps website hostnames to the reachable ingress address; configured outside Viking
TLS / certificate Encrypted authenticated transport / identity and public-key material used to establish it
cert-manager / Issuer / ClusterIssuer Optional certificate automation / namespaced issuer settings / cluster-scoped issuer settings
PVC / PV PersistentVolumeClaim requests storage / PersistentVolume represents the provisioned storage
StorageClass / CSI Storage provisioning configuration / Container Storage Interface used by drivers
RWX / RWO ReadWriteMany allows multi-node shared mounts / ReadWriteOnce generally restricts writable mounting to one node
Reclaim policy What backing storage does when its claim is released; separate from Viking retaining PVC objects
Symlink / hard link Filesystem path pointing to another path / another directory entry holding the same file bytes
fsync / directory sync Requests durability of file bytes / directory entries through filesystem sync operations
UID/GID / fsGroup Filesystem user/group IDs / Kubernetes volume group-permission setting
RBAC / ServiceAccount Role-based access control / workload identity for Kubernetes API calls
Role / ClusterRole / binding Namespaced permissions / cluster-wide permission definition / assignment of permissions to an identity
Owner reference / finalizer Kubernetes ownership/garbage-collection relation / cleanup gate before object deletion completes
Secret / ConfigMap Kubernetes credential/configuration object / non-secret configuration object; base64 is not encryption
Leader election / Lease Choosing one active controller / Kubernetes lock resource used for that coordination
Recreate / rolling update Stop old workload before replacement / replace replicas progressively
NetworkPolicy Network restrictions enforced by a supporting cluster plugin; configured through cluster policy
Port-forward Temporary local connection to a selected pod's port through Kubernetes; Ctrl+C stops it

Authentication and HTTP terms

Term Meaning
Origin / hostname / path Scheme+host+port / DNS name / URL portion such as /about/; a path alone is not a full URL
OAuth2 / OIDC / IdP Authorization protocol / OpenID Connect identity layer / external identity provider
Client / callback Registered application using the IdP / URL receiving the login response
Confidential / public client Client with a secret / client without one using the supported PKCE login flow
PKCE / state / nonce Login code-exchange binding / request-response flow binding / token replay binding
Scope / role / audience Requested token capability/claims / membership used by Viking permission gates / intended token recipient
Issuer / subject Provider's identity identifier / account identifier within that provider; together identify a principal
JWT / JWKS / introspection Signed structured token / provider signing-key set / provider endpoint for checking opaque tokens
Bearer token Explicit HTTP credential in Authorization; anyone holding it can use it while valid
Cookie / session Browser-stored value / authenticated interaction state, encrypted and signed by Viking
CSRF Cross-site request forgery; browser mutations require session-bound token protection in addition to authentication
CSP / sanitization Content Security Policy restricting browser execution/resources / removing unsupported unsafe markup
MIME / Content-Type Media type identifying bytes, such as image/png / header conveying it
Attachment Response disposition asking the browser to download rather than render inline
ETag / conditional request Representation validator / request that may reuse cached content when the validator matches
Range request Request for selected file bytes; frontend supports one byte range, not multipart ranges
Cache-Control / CDN HTTP caching instructions / optional external content-delivery cache, not installed by Viking
Liveness / readiness Whether a process is alive / whether its specific component checks allow traffic
Metrics / scrape / histogram Numeric telemetry / collecting its endpoint / bucketed counts and durations
Cardinality Number of distinct metric label combinations; unbounded user input must not create unrestricted series
Build version / release ID Application identity stamped in a binary / numbered generated website content; they are independent
CI / artifact / image digest Continuous integration / output saved between jobs / immutable container-content identifier

Reading notation and size limits

GET /api/pages/{id} means replace {id} with a returned page ID; do not include braces literally. A filesystem example <asset-id> means a generated identifier, not a directory actually named with angle brackets. Uppercase YOUR_* values are placeholders, not usable configuration. Shell $VARIABLE values must be set in that shell before running the example. A command remaining in the foreground needs another terminal for concurrent checks.

KiB and MiB mean 1024 and 1048576 bytes. Kubernetes Gi storage quantities mean 1024 cubed bytes. 1h and 30s are durations, not timestamps. JSON timestamps are server-generated UTC values where the API uses time fields. Numeric API status codes describe success/failure; do not infer success solely from an error-free browser page or a response body you have not checked.