Configuration constraints
These checks apply when ngit-grasp loads and validates its runtime configuration.
Upcoming operator surface
This page is generated from an unreleased ngit-grasp commit. Its interface may change before the next release.
relay-owner-key-format
The relay owner key must be a valid Nostr secret key.
- Options:
NGIT_RELAY_OWNER_NSEC - Rule: format
- Stable ID:
ngit-grasp.configuration.constraint.relay-owner-key-format
base-path-normalized
The base path must be '/' or a normalized absolute URL path without a trailing slash, empty segment, query, fragment, '.' or '..'.
- Options:
NGIT_BASE_PATH - Rule: format
- Stable ID:
ngit-grasp.configuration.constraint.base-path-normalized
bind-address-format
The bind address must be a valid IP address and port.
- Options:
NGIT_BIND_ADDRESS - Rule: format
- Stable ID:
ngit-grasp.configuration.constraint.bind-address-format
startup-integrity-identifiers-valid
Every startup integrity identifier must be a valid repository identifier.
- Options:
NGIT_STARTUP_INTEGRITY_IDENTIFIERS - Rule: format
- Stable ID:
ngit-grasp.configuration.constraint.startup-integrity-identifiers-valid
startup-integrity-identifiers-unique
Startup integrity identifiers must not contain duplicates.
- Options:
NGIT_STARTUP_INTEGRITY_IDENTIFIERS - Rule: unique items
- Stable ID:
ngit-grasp.configuration.constraint.startup-integrity-identifiers-unique
archive-services-with-archive-all
Archive GRASP services and archive-all mode are mutually exclusive.
- Options:
NGIT_ARCHIVE_GRASP_SERVICES,NGIT_ARCHIVE_ALL - Rule: mutually exclusive
- Stable ID:
ngit-grasp.configuration.constraint.archive-services-with-archive-all
archive-services-with-whitelist
Archive GRASP services and the archive whitelist are mutually exclusive.
- Options:
NGIT_ARCHIVE_GRASP_SERVICES,NGIT_ARCHIVE_WHITELIST - Rule: mutually exclusive
- Stable ID:
ngit-grasp.configuration.constraint.archive-services-with-whitelist
archive-read-only-requires-archive
Explicit read-only archive mode requires archive-all, an archive whitelist, or archive GRASP services.
- Options:
NGIT_ARCHIVE_READ_ONLY,NGIT_ARCHIVE_ALL,NGIT_ARCHIVE_WHITELIST,NGIT_ARCHIVE_GRASP_SERVICES - Rule: requires any
- Stable ID:
ngit-grasp.configuration.constraint.archive-read-only-requires-archive
private-mode-requires-members
Private mode requires at least one configured member.
- Options:
NGIT_PRIVATE_MODE,NGIT_PRIVATE_MEMBERS - Rule: requires
- Stable ID:
ngit-grasp.configuration.constraint.private-mode-requires-members
private-members-require-mode
Configured private members require private mode.
- Options:
NGIT_PRIVATE_MEMBERS,NGIT_PRIVATE_MODE - Rule: requires
- Stable ID:
ngit-grasp.configuration.constraint.private-members-require-mode
private-mode-with-grasp06
Private mode and the unauthenticated GRASP-06 contributor endpoint are mutually exclusive.
- Options:
NGIT_PRIVATE_MODE,NGIT_GRASP06_ENABLE - Rule: mutually exclusive
- Stable ID:
ngit-grasp.configuration.constraint.private-mode-with-grasp06
private-members-format
Every private member must be a valid npub.
- Options:
NGIT_PRIVATE_MEMBERS - Rule: format
- Stable ID:
ngit-grasp.configuration.constraint.private-members-format
private-public-origin-format
The private public origin, when set, must be an absolute HTTP(S) origin without a path, query, or fragment.
- Options:
NGIT_PRIVATE_PUBLIC_ORIGIN - Rule: format
- Stable ID:
ngit-grasp.configuration.constraint.private-public-origin-format
holding-retention-positive
Holding retention must be greater than zero seconds.
- Options:
NGIT_HOLDING_RETENTION_SECS - Rule: greater than
0 - Stable ID:
ngit-grasp.configuration.constraint.holding-retention-positive
holding-cleanup-interval-positive
The holding cleanup interval must be greater than zero seconds.
- Options:
NGIT_HOLDING_CLEANUP_INTERVAL_SECS - Rule: greater than
0 - Stable ID:
ngit-grasp.configuration.constraint.holding-cleanup-interval-positive
sync-descendant-limit-positive
The recursive sync descendant limit must be greater than zero.
- Options:
NGIT_SYNC_RECURSIVE_DESCENDANT_LIMIT - Rule: greater than
0 - Stable ID:
ngit-grasp.configuration.constraint.sync-descendant-limit-positive
deletion-retention-durations-positive
Each deletion-request retention duration must be greater than zero seconds.
- Options:
NGIT_DELETION_REQUEST_RETENTION_UNUSED_SERVED_SECS,NGIT_DELETION_REQUEST_RETENTION_UNUSED_UNSERVED_GATING_ADDITIONAL_SECS,NGIT_DELETION_REQUEST_RETENTION_USED_SERVED_AFTER_LAST_USED_SECS,NGIT_DELETION_REQUEST_RETENTION_USED_UNSERVED_GATING_ADDITIONAL_SECS - Rule: greater than
0 - Stable ID:
ngit-grasp.configuration.constraint.deletion-retention-durations-positive
unused-deletion-retention-sum
Unused served and additional gating durations must not overflow when combined.
- Options:
NGIT_DELETION_REQUEST_RETENTION_UNUSED_SERVED_SECS,NGIT_DELETION_REQUEST_RETENTION_UNUSED_UNSERVED_GATING_ADDITIONAL_SECS - Rule: checked sum
- Stable ID:
ngit-grasp.configuration.constraint.unused-deletion-retention-sum
used-deletion-retention-sum
Used served and additional gating durations must not overflow when combined.
- Options:
NGIT_DELETION_REQUEST_RETENTION_USED_SERVED_AFTER_LAST_USED_SECS,NGIT_DELETION_REQUEST_RETENTION_USED_UNSERVED_GATING_ADDITIONAL_SECS - Rule: checked sum
- Stable ID:
ngit-grasp.configuration.constraint.used-deletion-retention-sum
relay-limits-positive
Relay subscription, event-size, and filter limits must each be greater than zero.
- Options:
NGIT_RELAY_MAX_SUBSCRIPTIONS,NGIT_RELAY_MAX_EVENT_SIZE_BYTES,NGIT_RELAY_FILTER_LIMIT - Rule: greater than
0 - Stable ID:
ngit-grasp.configuration.constraint.relay-limits-positive
relay-event-size-websocket-limit
The relay event-size limit must not exceed the 5 MiB WebSocket message limit.
- Options:
NGIT_RELAY_MAX_EVENT_SIZE_BYTES - Rule: at most
5242880 bytes - Stable ID:
ngit-grasp.configuration.constraint.relay-event-size-websocket-limit
repository-whitelist-with-read-only-archive
A repository whitelist cannot be used when effective archive read-only mode is true; read-only defaults to true whenever any archive mode is enabled.
- Options:
NGIT_REPOSITORY_WHITELIST,NGIT_ARCHIVE_READ_ONLY,NGIT_ARCHIVE_ALL,NGIT_ARCHIVE_WHITELIST,NGIT_ARCHIVE_GRASP_SERVICES - Rule: custom
- Stable ID:
ngit-grasp.configuration.constraint.repository-whitelist-with-read-only-archive