NixOS modules' options exposed #195
Labels
No labels
0 points
0.5 points
1 point
13 points
2 points
21 points
3 points
34 points
5 points
55 points
8 points
ambition
application-offering
ambition
configure-applications
ambition
front-end
ambition/install-applications
ambition
security
ambition
switch-host
ambition
update-applications
ambition
user-management
api service
blocked
component: fediversity panel
component: nixops4
documentation
estimation high: >3d
estimation low: <2h
estimation mid: <8h
infinite points
productisation
project-management
question
role: application developer
role: application operator
role: hosting provider
role: maintainer
security
technical debt
testing
type unclear
type: bug
type: deliverable
type: key result
type: objective
type: task
type: user story
user experience
No milestone
No project
No assignees
3 participants
Notifications
Due date
No due date set.
Blocks
Depends on
#289 key features improving user experience supported
fediversity/fediversity
#610 Configure applications
fediversity/fediversity
#627 applications' configuration options exposed
fediversity/fediversity
#331 pydantic enum warning: Expected
enum but got str
fediversity/fediversity
#626 nix to json schema coverage
fediversity/fediversity
#1209 API route for delivering JSON Schema from NixOS module options
fediversity/fediversity
#1245 applications' operator-facing options selected
fediversity/fediversity
Reference
fediversity/fediversity#195
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
As a Fediversity user,
I want Fediversity to expose NixOS service modules' configuration options,
so that I may better control my deployments.
notes
settingsmay need the applications' schemas (#627) to migrate.implementation notes
module-schema-generated JSON-Schema build by flake attributecore#frontend-configuration-schemaas exposed thru our existing REST end-point, based ondata-model.nix's front-end configurations which exposes applications' operator-facing options.npins/sources.jsonas normal, i.e. different versions (relevant in #100) remain out of scope herenix-module-formto account for these changeskiara referenced this issue2025-02-25 12:09:46 +01:00
kiara referenced this issue2025-02-26 04:52:48 +01:00
kiara referenced this issue2025-04-07 21:46:57 +02:00
kiara referenced this issue2025-05-15 20:14:11 +02:00
use json schema as common language between componentsto expose configuration options from schemaexpose configuration options from schemato upstream configuration options exposed through schemaupstream configuration options exposed through schemato upstream configuration options exposedkiara referenced this issue2025-06-09 23:00:55 +02:00
kiara referenced this issue2025-11-10 23:25:29 +01:00
enumbut gotstrupstream configuration options exposedto NixOS modules' options exposedIn the meeting on 2026-07-14 @toonn, @kiara and I talked about the problem of some NixOS options depending on
config, like e.g. the default value ofservices.mastodon.redis.host.This is a problem since we wanna show a form based on jsonschema to the operator, but that jsonschema can't be dependend on the operators input (what eventually becomes the value of
config) for latency reasons.We figured that it is a practical way to move forward for now, by making the jsonschema of a form only dependend on the current nixpkgs checkout, not on the user supplied form input.
That implies that we have to generate jsonschema from NixOS options at runtime (since the Nixkpgs checkout of a deployment changes at runtime), but we can easily cache these, since the Nixpkgs checkout only changes ~once a day.
Agree, with one caveat, some options are expected to be set by the Hosting Provider and should not be shown to Operators. If the Hosting Provider config is in Nix then we could implement this by doing a set difference between the module options and the Hosting Provider's config and we'd generate the schema based on that instead. Not quite as static but the Hosting Provider shouldn't change too frequently, hopefully?
If we don't have the Hosting Provider configure in Nix then backend or frontend would have to do this set difference or get an explicit description of options to show to the Operator somehow.
since #1071 we have some type of schema diffing like that based on configuration set by the hosting provider
kiara referenced this issue2026-08-04 20:01:18 +02:00