English
Settings
Nav Settings. Description: “Project policy, storage, webhooks, privacy, and members.” Click Save to PATCH. Install-policy rules are not in this JSON; see Install policy.
- Open project → Settings.
- Edit a panel, then Save (or that panel’s confirm button).
Basic
| Field | UI | When to change | Failure |
|---|---|---|---|
| Slug | Slug | Public identity rename | Expired alias → client PROJECT_NOT_FOUNDProject identity missed or alias expired |
| Alias retention (days) | Alias retention (days) | How long the old slug still resolves | Illegal → 400 INVALID_REQUESTIllegal body/fields (including non-.mmdb, caps, unknown matrix pair, duplicate listing) |
| Compare engine | Compare engine | Only before first publish | COMPARE_ENGINE_IMMUTABLEcompare_engine locked after first publish |
| Minimum supported version | Minimum supported version | Force very old clients up | Compared with the project engine |
| Default locale | Default locale | Fallback copy | Must be a registered language |
Update Policy
Open Update Policy.
- Prefer older, recently active devices in gray admission: on by default. Off →
created_at, id ascending. - file_list pending-file cap:
0inherits the instance ceiling. Over the input max → 400INVALID_REQUESTIllegal body/fields (including non-.mmdb, caps, unknown matrix pair, duplicate listing).
Install policy templates
Panel title Install policy templates. Edit on Install policy.
Security
- Require client token for checks: missing token → 401
UNAUTHORIZEDMissing/invalid credentials. - Store token: Generate or paste; plaintext is shown only on this save. GET returns
has_store_token. Clear store token removes it. - Force HTTPS / CORS origins (comma separated).
Storage
Storage visibility is locked public. Private is rejected (400 INVALID_REQUESTIllegal body/fields (including non-.mmdb, caps, unknown matrix pair, duplicate listing)). Storage prefix / Bucket must not equal the project slug. Signing algorithm and public key sign check payloads.
Store listings
Envelope { listings: [] }.
- Click New listing.
- Set Protocol (
electron,sparkle,tauri, … matchingProtocol()), Listing slug, optional OS/arch/channel pins, Package source. - Copy Store URL into the updater. Duplicate
(protocol, slug)→ 400INVALID_REQUESTIllegal body/fields (including non-.mmdb, caps, unknown matrix pair, duplicate listing). After delete the feed is plaintext 404 (no JSONcode).
Concepts: Store listings.
Webhook
Webhook URL. Events: version published, line ready, version revoked. View delivery logs. Do not paste secrets into examples. See Webhooks.
Changelog Defaults
Scope, layout, Default changelog entries / Changelog max entries are clamped by instance changelog.*. Over ceiling → 400 INVALID_REQUESTIllegal body/fields (including non-.mmdb, caps, unknown matrix pair, duplicate listing). See Changelog.
Rate Limits
Panel Rate limit. Excess → 429 RATE_LIMITEDToo many requests; honor Retry-After with Retry-After. store_per_ip_per_minute is the shared public-GET IP bucket.
Privacy
device_id policy, Telemetry retention (days), Delete device by hash. Erase returns telemetry_deleted / allowlist_deleted. Deleting a roster row is not this action. See Clients.
Cleanup
Artifact cleanup: set Retention (days) and confirm Run artifact cleanup? Purged artifacts cannot be recovered. Native full packages and store store_full are never deleted. Progress: header Task Center. Failure: JOB_FAILEDAsync job failed.
Project members
- Add member, pick Role (Owner / Admin).
- Change role or Remove member. Last owner:
LAST_OWNERCannot remove last owner. Unknown:MEMBER_NOT_FOUNDMember missing.