Skip to content
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

On Version 2 -> 3 #9

Closed
joelgallant opened this issue Nov 14, 2020 · 5 comments
Closed

On Version 2 -> 3 #9

joelgallant opened this issue Nov 14, 2020 · 5 comments
Assignees
Labels
enhancement New feature or request

Comments

@joelgallant
Copy link
Contributor

joelgallant commented Nov 14, 2020

Brainstorming on things that could be added, removed and improved.

  • Encryption team members might be good to be environment specific
  • Thinking about multi-language support, and how to expose bindings (Draft 1 of Specification (Non-JS Language Interop) #50)
  • How to be a conf competitor in the CLI / distributed application / electron space
    • LocalStorage / electron-store ConfigSource

Could be done in V2:

  • Reading overriding environment variables (APP_CONFIG_FOO gets merged into main config) so the feature works from both sides (consumption and production)

cc @gregnr I know we've had conversations in the past on this.

@joelgallant
Copy link
Contributor Author

A consideration - reading APP_CONFIG_FOO would, as a technicality, be a breaking change if v2 shipped without the feature.

@joelgallant
Copy link
Contributor Author

Updated thoughts on App Config v3:

  • Remove default parsing extensions, with the new defaults being: $env, $extends, $override
  • Refactor parsing extension options to use $ prefixes, and strongly typed
  • Provide $substitute more options, and possibly rename (eg. $parse: number)
  • Add some "macros" for combining parsing extensions
    • $try - that catches FallbackableError (with $value and $fallback)
    • $if - that uses $check, and delegates value to $then or $else
  • Refactor monorepo to use independent versioning - add lerna to help manage this
  • Extend environment support for "soft aliases" - meaning specific environments that are very similar to another, with only a few values different
    • Explore option to $extends w/ a different environment than current one
    • Explore "combined" environment (ie. test.dev), which merges two environments, allowing for holes in them individually
  • Explore new config sources
    • CLI source to parse command line arguments
    • Browser localforage plugin - Importing @app-config/config w/o Node.js

@joelgallant
Copy link
Contributor Author

Breaking changes:

  • Removing default-extensions
  • Removing Node.js API exports from @app-config/main

@joelgallant
Copy link
Contributor Author

Updated again,

  • Clean up parsing extension option names and possible values
  • substitute already has parsing
  • try and if are already done
  • We should add $extends with env, this is useful

@joelgallant
Copy link
Contributor Author

Moving into #130

@joelgallant joelgallant unpinned this issue Apr 9, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

2 participants