-
Notifications
You must be signed in to change notification settings - Fork 30
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Proposal: support single app.config.yaml and extension manifest #395
Conversation
This is great, some thoughts that will be added to as we go ...
|
+1 yes the idea is to make this non breaking, current config files still work, and fields in ++1
Ok maybe we can add the string 'runtime': Agree,
We simply execute the script via execa (not
this is standard stuff, I don't think we should wrap that config but +1 for clear documentation and links |
Just filed AdobeDocs/app-builder#99 for a proper |
(edit) Note2: as of the extension manifest spec, the only field that is modifiable by the dev is |
@moritzraho Did you consider a JS config file ? I find them very flexible ie you can do a lot more compared to the YAML or JSON format. |
@icaraps +1 |
I think the opposite, it shouldn't be in package.json -- right now it is the prescribed way to add hooks and scripts, and that's why it's there. Are devs actually needing to run these via |
+1 to move the hooks out of package.json. Here are my arguments :
In general, I'd prefer to have the aio specific config separated and isolated from any other config. |
Proposal
tl;dr Unify all the user specified configuration files in a single
app.config.yaml
in a non-breaking way and add support for extension manifest configWith the switch to extension registry, instead of exposing yet another configuration file we have the opportunity to unify all the user configuration bits.
Developers should be able to configure their application/extension fully using a single file. Their configuration should not to be mixed up with auto-generated changing fields, e.g. like it is the case now with
.aio
console config that changes onaio app use
. This will also simplify the config parsing and merging logic on our side.The proposal is to unify all the user configuration in
app.config
, i.e.:.aio.app
as top level key,valuesruntimeManifest
config overwrites the currentmanifest.yml
extensionManifest
config for the extension registryenv
to store non secret commitable environment variableshooks
overwrites hooks inpackage.json
Note that this change is non-breaking, users are still free to use
manifest.yml
, define hooks inpackage.json
or configure.aio
.But when using
app.config
only:.aio
would hold only auto-generated values (console configuration) meaning it can be gitignored.env
would only be used for secret environment variablesExample
app.config.yaml
:Open points
The PR is a minimal POC the following is missing for a complete solution:
extensions
inextensionManifest
? see note below.env
vars andhooks
config inapp.config.yaml
not supported yet.manifest.yml
via runtime plugin: we could generate a compatible manifest file indist/
app.config.yaml
, removemanifest.yml
, add.aio
in.gitignore
json
andhjson
forapp.config
, read viaaio-lib-core-config
?Types of changes
Checklist: