This is an alternative to VCS or file based repository implementations.
All properties are stored ecrypted in vault, regardless of whether or
not that actaully need to be encrypted.
Supports properties style (this.is.a.property) or vault nested
properties.
Adds a watch to client and server, if enabled, the client will long poll
the server and wait for changes rather than relying on a message broker
to send change events.
Adds a server side watch for consul keys, this is useful when vault is
backed by consul (and currently the only use case, since there is not a
consul repository implementation).
Closes gh-397
Fallback to working copy of already checkedout repo when/if subversion server becomes unavailable. Similar functionality alreay exists with git repository.
Every app that requests config from the server starts a mini
application context. We can make it a bit less verbose by
shutting off the startup info logger in the SpringApplication.
Formerly the .properties, .json and .yml endpoints did not accept
requests for application names with hyphens. This change makes
hyphens legal in application names, but still illegal in profile
names (you have to pick one).
Fixes gh-384
File paths with slashes seem reasonable, so this change adds support
for those. Unfortunately, but unavoidably this requires some
manipulation of the servlet request, until changes can be made in
Spring MVC. See https://jira.spring.io/browse/SPR-14193.
Fixes gh-376
In particular the ResourceEndpoint is likely to serve data that is
not JSON, so having a "produces" attribute at the type level is a bad
idea.
Fixes gh-337
There's no reason the encrypotor needs to be in the bootstrap context
so we can still support symmetric key encryption via /encrypt
and /decrypt without requiring it to be configured there. With
this change we just look for key properties in the current context
and create an encryptor the same way the bootstrap listener does
in spring-cloud-commons.
In a file-based repository up to now we only support single profiles in
a placeholder. This change adds full support for multiple profiles in
the native profile and slightly limited support for git backends (only
the first profile to match an actual repository will be used to locate
the physical repository, but all profiles will be applied to the search
inside that repository).
The default git repository and also the native one (local files)
now support placeholders for {application}, {profile} and
{label} in the URI (searchLocation for the native repository).
Fixes gh-257
Users see it logged by the config client, and it appears in the
Environment response from the config server. It's hard to add it
to the /env endpoint without some extension points in Boot.
Fixes gh-244, fixes gh-245
Can be adapted to serve content in any format (e.g. nginx config file,
XML configuration for logger, etc.) - basically anything that can be
stored in plain text and doesn't require streaming.
Fixes gh-147, see also gh-198
Patterns in the form {application}/{profile} are now supported with
the old behaviour being the default (all profiles matched if none
are specified).
Fixes gh-214