speicher.md Docs

Repository configuration

Every key of .speicher.yaml, the configuration a repository carries at its root and in any folder.

version

Type: 1

The format version of this file. Always 1. Required in the root .speicher.yaml; a folder's file can leave it out.

ingest_root

Type: string · Default: ``

Root only. Publishes only this folder of the repository, for example docs. Nothing outside it is read, and URLs start below it. Write it without a leading slash.

access

Type: list of string or object

Who may read the pages at this level. Required in the root .speicher.yaml. In a folder, it can only narrow what the folder inherits: a reader must be allowed at every level from the root down.

access.groups

Type: list of string

Group names whose members may read. Each name must be a group configured on the instance, or public if the instance lists this repository under public.repos.

access.users

Type: list of object

Individual people who may read, each with an expiry date.

access.users[]

Type: object

One person, named by email or by subject with a note. Set exactly one of: subject + note, email.

access.users[].provider

Type: string

Short id of the identity provider the person signs in with. Can be left out when the instance has one provider or sets auth.default_provider.

access.users[].subject

Type: string

The person's permanent id at the identity provider, the value of its subject claim. It never changes and is never reused. For a magic-link provider, it is the email address. Needs a note.

access.users[].email

Type: string (email)

The person's email address, matched against the address the identity provider reports at sign-in. If the provider has a directory, it is resolved to the person's subject id during each sync.

access.users[].note

Type: string

Who this grant is for, such as a name and role. Required with subject. Up to 200 characters.

access.users[].until

Type: string (date) · Required

Date the grant ends, as YYYY-MM-DD. It is valid until the end of that day (UTC). The repository then syncs again and the grant is dropped.

maintainers

Type: object

Root only. People who can see this repository's sync status and the problems of its last sync. Maintainers get no read access from this; to read the pages, they also need access.

maintainers.groups

Type: list of string

Group names whose members maintain this repository. Cannot be public.

maintainers.users

Type: list of object

Individual maintainers, each with an expiry date.

maintainers.users[]

Type: object

One person, named by email or by subject with a note. Set exactly one of: subject + note, email.

maintainers.users[].provider

Type: string

Short id of the identity provider the person signs in with. Can be left out when the instance has one provider or sets auth.default_provider.

maintainers.users[].subject

Type: string

The person's permanent id at the identity provider, the value of its subject claim. It never changes and is never reused. For a magic-link provider, it is the email address. Needs a note.

maintainers.users[].email

Type: string (email)

The person's email address, matched against the address the identity provider reports at sign-in. If the provider has a directory, it is resolved to the person's subject id during each sync.

maintainers.users[].note

Type: string

Who this grant is for, such as a name and role. Required with subject. Up to 200 characters.

maintainers.users[].until

Type: string (date) · Required

Date the grant ends, as YYYY-MM-DD. It is valid until the end of that day (UTC). The repository then syncs again and the grant is dropped.

display

Type: object

How this repository or folder is shown.

display.title

Type: string

The name of the repository (in the root file) or of this folder. Not inherited by subfolders. A folder's index.md title takes precedence.

display.cover

Type: string or null

An image shown on this repository's or folder's card, as a path relative to this file. It must be inside the repository and must not be an SVG. Subfolders inherit it; null removes an inherited cover.

retrieval

Type: object

Whether pages are indexed automatically.

retrieval.indexable

Type: boolean

Set to false to leave these pages out of AI assistant search, the sitemap and search engines. Pages can still be read and found in Speicher's own search. Once turned off, a subfolder cannot turn it back on.

sync

Type: object

Which Markdown files to publish.

sync.include

Type: list of string

Glob patterns of Markdown files to publish, matched against the path below ingest_root. Defaults to **/*.md and **/*.mdx. In a folder, it replaces the inherited list.

sync.exclude

Type: list of string

Glob patterns of Markdown files not to publish, matched against the path below ingest_root. Defaults to **/README.md. In a folder, it adds to the inherited list. Exclude wins over include.