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