Changelog History
-
v8.7.3 Changes
June 09, 2020๐ Improvements
๐ณ Docker images are now compiling via the go 1.13 toolchain.
Agent Registration can now occur through chained load balancers,
with standards-compliant comma-separated X-Forwarded-For
headers. Why you would want to do this is beyond me, but ยฏ_(ใ)_/ยฏ๐ The
metashield
plugin now trusts system X.509 Root CAs if no
specific CA is supplied.๐ป Bootstrap restoration is simpler now, and the UI for init /
๐ restore is more streamlined. See #680. -
v8.7.2 Changes
April 23, 2020๐ Bug Fixes
- SHIELD will now be able to properly authenticate to vault again.
-
v8.7.1 Changes
April 20, 2020DO NOT USE
This version of SHIELD will be unable to perform backups if the core has ever been restarted. This does not cause any permanent damage, but this version will not be able to do backups.
๐ Improvements
๐ The meta SHIELD plugin has two additional (optional) fields.
The core CA certificate and skip ssl validation fields allow
us to now properly handle tls.Properly Handle 301's from amazon during purge tasks
Switching bespoke Vault for vaultkv
-
v8.7.0 Changes
March 10, 2020๐ New Features
- ๐ SHIELD now features a new
metashield
plugin for backing up and restoring your shield core(s). This is a standardized way
โช for SHIELD to backup/restore itself or another SHIELD instance.
- ๐ SHIELD now features a new
-
v8.6.3 Changes
January 03, 2020๐ Bug Fixes
- ๐ป The Web UI, when sorting, is now case-insensitive.
- ๐จ The data-system-specific storage footprint in the Web UI now no longer
๐จ counts purged archives against the storage footprint. - The core no longer leaks a SQL prepared statement when making requests
to the SQLite3 backend, fixing an unbounded memory leak. - The migration to database schema v12 now reports errors more granularly.
-
v8.6.2 Changes
December 05, 2019๐ This release fixes issues with failed 8.5.0 โ 8.6.0 migrations
๐ท that left the interimjobs_new
table around. -
v8.6.1 Changes
December 04, 2019๐ This release chiefly introduces logic to existing and new database
๐ schema migrations to fix fallout from the 8.6.0 release, in which
we mistakenly modified a historic migration to do something.โฌ๏ธ All database upgrade paths, including pre-8.6.0 โ present,
๐ (failing) 8.6.0 deployment โ present, and brand new deployments,
should all work now.๐ Improvements
- 0๏ธโฃ The
fs
plugin is now quieter by default, and will only turn on
๐ฒ per-file debug logging if asked to do so via its own
๐ง configuration. This should greatly speed up backup operations
๐ on busy SHIELDs, since it reduces the database lock contention.
๐ Bug Fixes
๐ง The front-end configuration wizard now properly looks up
๐ plugin metadata for an agent. Previously, there was a
Javascript variable shadowing bug that caused the front-end to
๐ return any arbitrary plugin metadata as the "correct" one.Task cancelation had a n inverted boolean assertion on global
๐ tenant-iness that has been fixed. - 0๏ธโฃ The
-
v8.6.0 Changes
November 14, 2019โ WARNING
๐ Do not use this version. This version has a database schema migration error that will be fixed in an upcoming patch release.
๐ New Features
๐ณ Helm Support! This version of SHIELD ships with OCI Docker
images that can be used in the new (Beta!) helm chart for
๐ SHIELD. See https://github.com/shieldproject/helm for more
details, and to give it a spin yourself.๐ง The SHIELD Core can now be configured almost entirely through
๐ณ environment variables, for ease of configuration in Docker,
Compose, and even Kubernetes.We have a new Prometheus-compatible metrics exporter, accessible
at/metrics
, and governed by a separate set of HTTP Basic Auth
credentials.๐ฅ Breaking Changes
๐ง The
fabrics
array in the configuration file has been replaced with
thelegacy-agents
hash.๐ง Previously, configuration for this would look like
fabrics: - name: legacyssh-key: | -----BEGIN RSA PRIVATE KEY----- kEy -----END RSA PRIVATE KEY-----
๐ง Now, that should be configured like the following:
legacy-agents: enabled: trueprivate-key: | -----BEGIN RSA PRIVATE KEY----- kEy -----END RSA PRIVATE KEY-----
๐ Improvements
Agent SSH is now constrained to a more secure set of message
authentication codes (MACs). Specifically, we got rid of one
embarassing 96-bit MAC algorithm. Ooof!๐ป Several quality-of-life improvements were made to the web UI
and message bus / websocket implementations. In general, the
๐ web interface is easier to use and more robust now.๐ Old task logs and purged archives will now be removed from the
database after a minimum retention period has passed. If you've
โก๏ธ been with us since the 0.x days, this update is for you, and
we're sorry it's taken us so long to do this type of cleanup.The SHIELD IP Address (which gets less and less relevant every
๐ป day) is no longer reported via the API / web UI.๐ Bug Fixes
โช Uncompressed backups can now properly be restored.
๐ท The
healthy
andpaused
fields of the Jobs table now no
longer allows NULL values, landing us squarely back in the
territory of booleanitude -- things are either true or false;
there is no maybe.Negative daily storage increases now properly convert to kilo-,
mega-, and giga- units, to help humans understand magnitude.โฑ The
api.session.timeout
value is now interpreted properly as
seconds, not hours. This effectively means that sessions now
expire when they ought to, not several orders of magnitude
later. -
v8.5.0 Changes
September 13, 2019๐ Improvements
The
shield status
command is twice as pretty and three times
as useful.๐ Cloud Storage detail pages in the web interface now show a
timeline similar to the one shown for Data Systems, so that
SHIELD operators have an easier time of troubleshooting failing
๐ง storage configurations.๐ฒ The SHIELD CLI now displays task+log data for the last
โ test-store task of a given store (forshield store X
and
shield global-store Y
), to assist in troubleshooting failing
๐ง storage configurations.๐ Operators now have a web interface and some CLI commands for
inspecting the state of SHIELD Data Fixups, and re-running them
(if / when necessary).๐ The
mongo
target plugin can now have options applied
โช individually to justmongodump
ormongorestore
.Passwords and RSA private keys are now properly obscured in
๐ the web interface detail pages for both systems and cloud
๐ storage. People without rights to see such credentials will
๐ still see the "REDACTED" string instead; but people with the
๐ required privilege will instead see the blurred-out obscured
text that they can hover over to reveal.The
shield tasks
command can now filter down to only tasks
that involve a particular tenant or global cloud storage system.๐ Bug Fixes
Data Fixups will now be properly skipped if they've already been
applied. Additionally, names / dates / summaries will be
updated every time the SHIELD Core boots up, to catch typos
and mispellings there.๐ The Data System detail page in the web interface no longer has a
๐ race condition between the start of an AJAX call for the plugin
๐ง configuration details and ashield:navigate
away from the
page. Other such race conditions involving AJAX should now also
๐ be fixed.Switching between tenants (with differing levels of access) now
properly re-renders the sidebar to show your new privileges.๐ท The
shield job X
command now populates the "Status" and
"Agent" fields, using data in the API responses. -
v8.4.1 Changes
August 29, 2019๐ Improvements
- โ Added a /v2/mbus/status API endpoint that returns metrics about the state of
the event message bus. This allows for some introspection into what websocket
connections may be doing at that moment. - ๐ป The UI now has less wasted space when displaying a bunch of cards for data
systems. - ๐ง Implemented a configurable timeout when making SSH connections to agents. A
0๏ธโฃ lower default now also keeps dead agents from taking up large amounts of
โฑ scheduler worker time. - SHIELD now tracks when the last time an agent erred was.
- ๐ป Hidden agents are now sorted under a separate header in the web UI.
- Hiding, showing, and deleting agents can now be done from the CLI.
๐ Bug Fixes
- We no longer leak the file descriptors and goroutines for detached websocket
clients - ๐ท Workers can no longer be starved out when sending events to the message bus
if the receiver of the message bus is misbehaving because these event sends
are now asynchronous. - ๐ Fixed a bug where a worker could derefence a nil pointer when certain
database selects returned no rows. - The database layer now has more stringent locking, which both avoids certain
threads locking each other out in SQLite, and also makes certain series of
database operations effectively atomic. - A couple of fixups would deadlock themselves out of the database and prevent
๐ fixups from actually running. Now they don't. - ๐ Fixups now only run once instead of on every startup, like nature intended.
- โก๏ธ The agent "Last Checked At" timestamp was being updated when the task was
โฑ pulled off the scheduler, whether or not the agent was actually checked
(due to other potential errors). - Named a fixup without a name.
- Agents that failed their status checks are now once again marked as such.
- โ Added a /v2/mbus/status API endpoint that returns metrics about the state of