interface for abra app config #818
Open
opened 2026-04-02 17:45:14 +00:00 by fauno
·
4 comments
No Branch/Tag Specified
main
renovate/golang-1.27
local-integration-testing
renovate/github.com-charmbracelet-bubbletea-2.x
fix/492
renovate/github.com-charmbracelet-lipgloss-2.x
renovate/otel-weaver-0.x
renovate/codespell-2.x
renovate/tonistiigi-xx-1.x
renovate/alpine-3.x
renovate/github.com-charmbracelet-log-2.x
chore-deps
fix/deps
fix/613
0.13.0-beta
0.13.0-rc2-beta
0.13.0-rc1-beta
0.12.0-beta
0.11.0-beta
0.10.1-beta
0.10.0-beta
0.10.0-rc2-beta
0.10.0-rc1-beta
0.9.0-beta
0.8.1-beta
0.8.0-beta
0.8.0-rc2-beta
0.8.0-rc1-beta
0.7.0-beta
0.7.0-rc3-beta
0.7.0-rc2-beta
0.6.0-beta
0.5.1-beta
0.5.0-alpha
0.4.1-alpha
0.4.0-alpha
0.4.0-alpha-rc8
0.4.0-alpha-rc7
0.4.0-alpha-rc6
0.4.0-alpha-rc5
0.4.0-alpha-rc4
0.4.0-alpha-rc3
0.4.0-alpha-rc2
0.4.0-alpha-rc1
0.3.1-alpha-rc2
0.3.1-alpha-rc1
0.3.1-rc1
0.3.0-alpha
0.2.2-alpha
0.2.1-alpha
0.2.0-alpha
0.1.8-alpha
0.1.7-alpha
0.1.6-alpha
0.1.5-alpha
0.1.4-alpha
0.1.3-alpha
0.1.2-alpha
0.1.1-alpha
0.1.0-alpha
10.0.5
10.0.3
10.0.2
10.0.1
10.0.0
9.0.0
8.0.1
8.0.0
0.7.4
0.7.3
0.7.2
0.7.1
0.7.0
checkout
0.6.0
0.5.0
0.4.1
0.4.0
0.3.1
0.3.0
0.2.0
0.1.2
0.1.1
0.1.0
Labels
Clear labels
bug
build
ci/cd
critical fix
design
documentation
duplicate
easy-first-issue
enhancement
help wanted
i10n
i18n
installer
invalid
question
release
release-candidate
security
tech-debt
test
wontfix
Something is not working
go build related issues
Building things with CI/CD
https://docs.coopcloud.tech/federation/resolutions/passed/010/
UI/UX
Documenting all the things
This issue or pull request already exists
Something for new people to get stuck into. We hope it's easy!
New feature
Need some help
Everything to do with localisation
Everything to do with internationalisation
Everything to do with the install script.
Something is wrong
More information is needed
Release management
Related to the new release candidate
Security related
Unit/integration testing
This won't be fixed
Milestone
No items
No Milestone
Projects
Clear projects
No projects
Assignees
3wordchant
aadil (Aadil Ayub)
abra-bot (Abra Bot)
ammaratef45
amras (Sarma)
Apfelwurm
BornDeleuze
Brooke
carla
cas (Cassowary)
coopcloud
cyrnel
decentral1se (d1)
dede
devydave
fauno (fauno)
iexos
jade (Jade Ambrose)
jjsfunhouse
jmakdah2 (Jackie Makdah)
joe-irving (Joe Irving)
kawaiipunk (KawaiiPunk)
knoflook
kolaente
lambdabundesverband
linnealovespie (April)
moosemower
moritz
notplants
oxaliq (sorrel)
p4u1
pharaohgraphy (Andrew 🐦🔥❤️🔥✴️)
renovate-bot (Comrade Renovate Bot)
ripclap
simon
sixsmith (Sixsmith)
stevensting
trav (Trav Fryer)
val (val (he/him))
yksflip
Clear assignees
No Assignees
Notifications
Due Date
No due date set.
Dependencies
No dependencies set.
Reference: toolshed/abra#818
Reference in New Issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
related to #722
during escuela común it was a bit of a context switch to be running abra commands and getting to
abra app configwhere a text editor is opened and you need to figure out what's a comment and what's a variable and how to edit them on nano... so even if it's as simple as it can get, the experience assumes knowledge of text editors.i wonder if there's a better way to enable features that follows the current abra cli, something like
abra app feature enable app.example.coop smtpthat knows which env vars to set and asks you for values when required.I'm open to a design proposal although I suspect it would be really a lot of work. You'd need to look very closely at what are the manual steps for enabling a feature (enabling env vars, setting
COMPOSE_FILEetc.), come up with a way the recipe config can communicate this (a new config format?), design the CLI interface (you have a good start already) and finally think about future edge-cases: can you also disable? some features are not reversible, what do you do then? And so on.I do wonder though, if you can really maintain your own co-op cloud deployment without spending some time learning a text editor. Our system has really so many rough edges and we cannot save people from the chaos. Attempting to code around that is usually not a good solution. I'm probably more for "teaching how to fish" and finding how we can make editing files clear, documented and explained with context.
what i was thinking in terms of mapping a feature name to env vars is that a feature would have a list of env vars that it uses, and a corresponding compose file.
so enabling a feature checks that the env vars are there, if empty it asks for their value, if they have a default value skip them or maybe suggest them. and the same can be used for disabling, if the env var is not being used by another enabled feature.
the compose file can be added to the list automatically by listing features.
as for learning text editors... even nano is confusing, if you know of anything that is more obvious to be a text editor and uses more stablished key combinations (ctrl+o to save and then enter to confirm the file name is wtf) please let me know. also EDITOR is never set by default in my experience!
https://git.coopcloud.tech/escuela-comun/huerta-init/src/branch/antifascista/abra-init.sh#L11
(i never know how to link to source code and show the preview)
I really feel the pain with nano, but could you set EDITOR to be a GUI editor? And we could allow setting the editor in abra.yml
If we do the config via abra cli I would go in this direction:
recipe.yml which is the new authority for config. This can then generate a .env.sample or an app.env
The config cli would also use recipe.yml
And we could also develop abra in a direction of alakazam
I like the
recipe.ymlidea a lot!And regarding feature toggles, we also came across this. related: moritz/alakazam#3