Spaces
Spaces are virtual resources that represent regular Kubernetes namespaces. Typically, non-admin users to not have the permission to list, create or delete namespaces in a shared Kubernetes clusters. That's why Loft adds the space resource to Kubernetes. Spaces are not stored in etcd but rather abstract from regular namespaces. Deleting a space will effectively delete the underlying namespace, for example. In turn, any labels and annotations set on a namespace will show up on the corresponding space as well.
Working with Spaces
Space and namespaces are directly coupled via a 1:1 relationship. But unlike with namespaces, it is safe to give non-admin users the permission to create and manage their own spaces.
Create Spaces
Delete Spaces
List Spaces
Prevent Space Deletion
Configuration
Owner

JSONPath in CRD:
spec.user (type: string) # default: name of current user
Template

Metadata
Name

JSONPath in CRD:
metadata.name (type: string)
Labels

JSONPath in CRD:
metadata.labels (type: map[string]string)
Annotations

JSONPath in CRD:
metadata.annotations (type: map[string]string)
Sleep Mode
Inactivity Timeout

JSONPath in CRD:
metadata.annotations["sleepmode.loft.sh/sleep-after"] (type: string)
Auto-Delete Timeout

JSONPath in CRD:
metadata.annotations["sleepmode.loft.sh/delete-after"] (type: string)
Sleep Schedule

JSONPath in CRD:
metadata.annotations["sleepmode.loft.sh/sleep-schedule"] (type: string)
Wake-Up Schedule

JSONPath in CRD:
metadata.annotations["sleepmode.loft.sh/wakeup-schedule"] (type: string)
Scheduling Timezone

JSONPath in CRD:
metadata.annotations["sleepmode.loft.sh/timezone"] (type: string)
Apps

Access To Space

JSONPath in CRD:
spec.access (type: Access[])