mirror of
https://github.com/penpot/penpot.git
synced 2025-06-16 02:51:38 +02:00
🔧 Improve flags documentation (#5863)
* 📎 Fix typo * 🔧 Enable certain flags by default * 🔧 Compile all flags in a single source of truth * 📎 Move all default flags to common --------- Co-authored-by: Andrey Antukh <niwi@niwi.nz>
This commit is contained in:
parent
6a5538bb15
commit
807b8d82e3
4 changed files with 137 additions and 21 deletions
|
@ -228,19 +228,9 @@
|
||||||
[:objects-storage-s3-endpoint {:optional true} ::sm/uri]
|
[:objects-storage-s3-endpoint {:optional true} ::sm/uri]
|
||||||
[:objects-storage-s3-io-threads {:optional true} ::sm/int]]))
|
[:objects-storage-s3-io-threads {:optional true} ::sm/int]]))
|
||||||
|
|
||||||
(def default-flags
|
|
||||||
[:enable-backend-api-doc
|
|
||||||
:enable-backend-openapi-doc
|
|
||||||
:enable-backend-worker
|
|
||||||
:enable-secure-session-cookies
|
|
||||||
:enable-email-verification
|
|
||||||
:enable-v2-migration])
|
|
||||||
|
|
||||||
(defn- parse-flags
|
(defn- parse-flags
|
||||||
[config]
|
[config]
|
||||||
(flags/parse flags/default
|
(flags/parse flags/default (:flags config)))
|
||||||
default-flags
|
|
||||||
(:flags config)))
|
|
||||||
|
|
||||||
(defn read-env
|
(defn read-env
|
||||||
[prefix]
|
[prefix]
|
||||||
|
|
|
@ -141,7 +141,7 @@
|
||||||
(keep flag->feature))
|
(keep flag->feature))
|
||||||
|
|
||||||
(defn get-enabled-features
|
(defn get-enabled-features
|
||||||
"Get the globally enabled fratures set."
|
"Get the globally enabled features set."
|
||||||
[flags]
|
[flags]
|
||||||
(into default-features xf-flag-to-feature flags))
|
(into default-features xf-flag-to-feature flags))
|
||||||
|
|
||||||
|
|
|
@ -7,13 +7,145 @@
|
||||||
(ns app.common.flags
|
(ns app.common.flags
|
||||||
"Flags parsing algorithm."
|
"Flags parsing algorithm."
|
||||||
(:require
|
(:require
|
||||||
|
[clojure.set :as set]
|
||||||
[cuerdas.core :as str]))
|
[cuerdas.core :as str]))
|
||||||
|
|
||||||
|
(def login
|
||||||
|
"Flags related to login features"
|
||||||
|
#{;; Allows registration with login / password
|
||||||
|
;; if disabled, it's still possible to register/login with providers
|
||||||
|
:registration
|
||||||
|
;; Redundant flag. TODO: remove it
|
||||||
|
:login
|
||||||
|
;; enables the section of Access Tokens on profile.
|
||||||
|
:access-tokens
|
||||||
|
;; Uses email and password as credentials.
|
||||||
|
:login-with-password
|
||||||
|
;; Uses Github authentication as credentials.
|
||||||
|
:login-with-github
|
||||||
|
;; Uses GitLab authentication as credentials.
|
||||||
|
:login-with-gitlab
|
||||||
|
;; Uses Google/Gmail authentication as credentials.
|
||||||
|
:login-with-google
|
||||||
|
;; Uses LDAP authentication as credentials.
|
||||||
|
:login-with-ldap
|
||||||
|
;; Uses any generic authentication provider that implements OIDC protocol as credentials.
|
||||||
|
:login-with-oidc
|
||||||
|
;; Allows registration with Open ID
|
||||||
|
:oidc-registration
|
||||||
|
;; This logs to console the invitation tokens. It's useful in case the SMTP is not configured.
|
||||||
|
:log-invitation-tokens})
|
||||||
|
|
||||||
|
(def email
|
||||||
|
"Flags related to email features"
|
||||||
|
#{;; Uses the domains in whitelist as the only allowed domains to register in the application.
|
||||||
|
;; Used with PENPOT_REGISTRATION_DOMAIN_WHITELIST
|
||||||
|
:email-whitelist
|
||||||
|
;; Prevents the domains in blacklist to register in the application.
|
||||||
|
;; Used with PENPOT_REGISTRATION_DOMAIN_BLACKLIST
|
||||||
|
:email-blacklist
|
||||||
|
;; Skips the email verification process. Not recommended for production environments.
|
||||||
|
:email-verification
|
||||||
|
;; Only used if SMTP is disabled. Logs the emails into the console.
|
||||||
|
:log-emails
|
||||||
|
;; Enable it to configure email settings.
|
||||||
|
:smtp
|
||||||
|
;; Enables the debug mode of the SMTP library.
|
||||||
|
:smtp-debug})
|
||||||
|
|
||||||
|
(def varia
|
||||||
|
"Rest of the flags"
|
||||||
|
#{:audit-log
|
||||||
|
:audit-log-archive
|
||||||
|
:audit-log-gc
|
||||||
|
:auto-file-snapshot
|
||||||
|
;; enables the `/api/doc` endpoint that lists all the rpc methods available.
|
||||||
|
:backend-api-doc
|
||||||
|
;; TODO: remove it and use only `backend-api-doc` flag
|
||||||
|
:backend-openapi-doc
|
||||||
|
;; Disable it to start the RPC without the worker.
|
||||||
|
:backend-worker
|
||||||
|
;; Only for development
|
||||||
|
:component-thumbnails
|
||||||
|
;; enables the default cors configuration that allows all domains (currently this configuration is only used for development).
|
||||||
|
:cors
|
||||||
|
;; Enables the templates dialog on Penpot dashboard.
|
||||||
|
:dashboard-templates-section
|
||||||
|
;; disabled by default. When enabled, Penpot create demo users with a 7 days expiration.
|
||||||
|
:demo-users
|
||||||
|
;; disabled by default. When enabled, it displays a warning that this is a test instance and data will be deleted periodically.
|
||||||
|
:demo-warning
|
||||||
|
;; Activates the schema validation during update file.
|
||||||
|
:file-schema-validation
|
||||||
|
;; Reports the schema validation errors internally.
|
||||||
|
:soft-file-schema-validation
|
||||||
|
;; Activates the referential integrity validation during update file; related to components-v2.
|
||||||
|
:file-validation
|
||||||
|
;; Reports the referential integrity validation errors internally.
|
||||||
|
:soft-file-validation
|
||||||
|
;; TODO: deprecate this flag and consolidate the code
|
||||||
|
:frontend-svgo
|
||||||
|
;; TODO: deprecate this flag and consolidate the code
|
||||||
|
:exporter-svgo
|
||||||
|
;; TODO: deprecate this flag and consolidate the code
|
||||||
|
:backend-svgo
|
||||||
|
;; If enabled, it makes the Google Fonts available.
|
||||||
|
:google-fonts-provider
|
||||||
|
;; Only for development.
|
||||||
|
:nrepl-server
|
||||||
|
;; Interactive repl. Only for development.
|
||||||
|
:urepl-server
|
||||||
|
;; Programatic access to the runtime, used in administrative tasks.
|
||||||
|
;; It's mandatory to enable it to use the `manage.py` script.
|
||||||
|
:prepl-server
|
||||||
|
;; Shows the onboarding modals right after registration.
|
||||||
|
:onboarding
|
||||||
|
:quotes
|
||||||
|
:soft-quotes
|
||||||
|
;; Concurrency limit.
|
||||||
|
:rpc-climit
|
||||||
|
;; Rate limit.
|
||||||
|
:rpc-rlimit
|
||||||
|
;; Soft rate limit.
|
||||||
|
:soft-rpc-rlimit
|
||||||
|
;; Disable it if you want to serve Penpot under a different domain than `http://localhost` without HTTPS.
|
||||||
|
:secure-session-cookies
|
||||||
|
;; If `cors` enabled, this is ignored.
|
||||||
|
:strict-session-cookies
|
||||||
|
:telemetry
|
||||||
|
:terms-and-privacy-checkbox
|
||||||
|
;; Only for developtment.
|
||||||
|
:tiered-file-data-storage
|
||||||
|
:transit-readable-response
|
||||||
|
:user-feedback
|
||||||
|
;; TODO: remove this flag.
|
||||||
|
:v2-migration
|
||||||
|
:webhooks
|
||||||
|
;; TODO: deprecate this flag and consolidate the code
|
||||||
|
:export-file-v3
|
||||||
|
:render-wasm-dpr
|
||||||
|
:hide-release-modal})
|
||||||
|
|
||||||
|
(def all-flags
|
||||||
|
(set/union email login varia))
|
||||||
|
|
||||||
(def default
|
(def default
|
||||||
"A common flags that affects both: backend and frontend."
|
"Flags with default configuration"
|
||||||
[:enable-registration
|
[:enable-registration
|
||||||
|
:enable-login-with-password
|
||||||
:enable-export-file-v3
|
:enable-export-file-v3
|
||||||
:enable-login-with-password])
|
:enable-frontend-svgo
|
||||||
|
:enable-exporter-svgo
|
||||||
|
:enable-backend-svgo
|
||||||
|
:enable-backend-api-doc
|
||||||
|
:enable-backend-openapi-doc
|
||||||
|
:enable-backend-worker
|
||||||
|
:enable-secure-session-cookies
|
||||||
|
:enable-email-verification
|
||||||
|
:enable-onboarding
|
||||||
|
:enable-dashboard-templates-section
|
||||||
|
:enable-google-fonts-provider
|
||||||
|
:enable-component-thumbnails])
|
||||||
|
|
||||||
(defn parse
|
(defn parse
|
||||||
[& flags]
|
[& flags]
|
||||||
|
|
|
@ -63,17 +63,11 @@
|
||||||
:browser
|
:browser
|
||||||
:webworker))
|
:webworker))
|
||||||
|
|
||||||
(def default-flags
|
|
||||||
[:enable-onboarding
|
|
||||||
:enable-dashboard-templates-section
|
|
||||||
:enable-google-fonts-provider
|
|
||||||
:enable-component-thumbnails])
|
|
||||||
|
|
||||||
(defn- parse-flags
|
(defn- parse-flags
|
||||||
[global]
|
[global]
|
||||||
(let [flags (obj/get global "penpotFlags" "")
|
(let [flags (obj/get global "penpotFlags" "")
|
||||||
flags (sequence (map keyword) (str/words flags))]
|
flags (sequence (map keyword) (str/words flags))]
|
||||||
(flags/parse flags/default default-flags flags)))
|
(flags/parse flags/default flags)))
|
||||||
|
|
||||||
(defn- parse-version
|
(defn- parse-version
|
||||||
[global]
|
[global]
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue