Skip to content

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.

  1. Open project → Settings.
  2. Edit a panel, then Save (or that panel’s confirm button).

Basic ​

FieldUIWhen to changeFailure
SlugSlugPublic identity renameExpired alias → client PROJECT_NOT_FOUNDProject identity missed or alias expired
Alias retention (days)Alias retention (days)How long the old slug still resolvesIllegal → 400 INVALID_REQUESTIllegal body/fields (including non-.mmdb, caps, unknown matrix pair, duplicate listing)
Compare engineCompare engineOnly before first publishCOMPARE_ENGINE_IMMUTABLEcompare_engine locked after first publish
Minimum supported versionMinimum supported versionForce very old clients upCompared with the project engine
Default localeDefault localeFallback copyMust 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: 0 inherits the instance ceiling. Over the input max → 400 INVALID_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: [] }.

  1. Click New listing.
  2. Set Protocol (electron, sparkle, tauri, … matching Protocol()), Listing slug, optional OS/arch/channel pins, Package source.
  3. Copy Store URL into the updater. Duplicate (protocol, slug) → 400 INVALID_REQUESTIllegal body/fields (including non-.mmdb, caps, unknown matrix pair, duplicate listing). After delete the feed is plaintext 404 (no JSON code).

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 ​

  1. Add member, pick Role (Owner / Admin).
  2. Change role or Remove member. Last owner: LAST_OWNERCannot remove last owner. Unknown: MEMBER_NOT_FOUNDMember missing.