diff --git a/ChangeLog.md b/ChangeLog.md
index 77d824e3..29b68d60 100644
--- a/ChangeLog.md
+++ b/ChangeLog.md
@@ -4,16 +4,16 @@ This is a cursory summary of changes to various storage-inventory components.
Check the README in specific modules for details.
## minoc:1.0.0
-```
-added optional `org.opencadc.minoc.trust.preauth` config
-removed optional `org.opencadc.minoc.publicKeyFile` config
-```
+
+In `minoc.properties`:
+- added `org.opencadc.minoc.trust.preauth`
+- removed `org.opencadc.minoc.publicKeyFile`
+- added `org.opencadc.minoc.readable`
+- added `org.opencadc.minoc.writable`
+
A `minoc` instance will download a public key from each trusted service and
use the public key(s) to validate URLs that include a _preauth_ token.
-```
-added optional `org.opencadc.minoc.readable` and `org.opencadc.minoc.writable` config
-```
A `minoc` service will advertise (via inventory.StorageSite record in the database) the
_readable_ and _writable_ status; this information is synced to global inventory and
used by `raven` to determine if it should generate PUT or GET URLs that use the `minoc`
@@ -26,45 +26,44 @@ The explicit _readable_ and _writable_ configuration options will override the a
implicit logic and set the status accordingly. This is currently optional but may be required
in a future version.
-```
-added optional config file: cadc-log.properties
-added optional config file: cadc-vosi.properties
-```
+New optional config files:
+- added `cadc-log.properties`
+- added `cadc-vosi.properties`
## raven:1.0.0
-```
-added org.opencadc.raven.inventory connection pool
-```
-A `raven` service uses this pool to perform database initialization. This pool is
-configured in the `catalina.properties` file.
-
-```
-added optional `org.opencadc.raven.keys.preauth` config
-removed optional `org.opencadc.raven.publicKeyFile` and `org.opencadc.minoc.privateKeyFile` config
-```
+
+in `catalina.properties`:
+- added `org.opencadc.raven.inventory` connection pool
+
+A `raven` service uses this pool to perform database initialization.
+
+In `raven.properties`:
+- added `org.opencadc.raven.keys.preauth`
+- removed `org.opencadc.raven.publicKeyFile` and `org.opencadc.minoc.privateKeyFile`
+
When configured to do so, a `raven` service will generate it's own public/private key pair
and use the private key to _sign_ `minoc` URLs. All the `minoc` services known to the global
`raven` service must also be configured to _trust_ `raven`.
-```
-added optional config file: cadc-log.properties
-added optional config file: cadc-vosi.properties
-```
+New optional config files:
+- added `cadc-log.properties`
+- added `cadc-vosi.properties`
## luskan:1.0.0
-```
-changed config file: cadc-tap-tmp.properties
-```
+
+In `cadc-tap-tmp.properties`:
+- must configure a `org.opencadc.tap.tmp.StorageManager`
+
A `luskan` service now uses the DelegatingStorageManager` so this config file must
specify which storage manager implementation to use along with existing
implementation-specific configuration options.
-```
-added optional config file: cadc-log.properties
-added optional config file: cadc-vosi.properties
-```
+New optional config files:
+- added `cadc-log.properties`
+- added `cadc-vosi.properties`
+
-## vault:0.5.0 (NEW)
+## vault:1.0.0 (NEW)
This is a new service that implements the IVOA VOSpace 2.1 REST API to provide user-managed
hierarchical storage. `vault` is deployed with it's own database and an associated inventory
-database, uses inventory services (`minoc`) for file storage and management.
+database, uses inventory services (`minoc`) for file storage and access.
diff --git a/README.md b/README.md
index 1b2fbf4d..9db6f7ef 100644
--- a/README.md
+++ b/README.md
@@ -5,8 +5,16 @@ data archive.
What is it? [Concept Documentation](docs/)
+
# software components
+## versions
+For libraries (`cadc-{name}`) the version is in the `build.gradle` file. Libraries are published to
+maven central under the `org.opencadc` groupId, for example `org.opencadc:cadc-inventory`.
+
+For services and agents, the version is in the `VERSION` file. Docker images are published to the
+`images.opencadc.org` repository (currently a Harbor service).
+
## storage-inventory-dm
This is the storage inventory data model and architecture documentation. TODO: Add an FAQ.
@@ -14,42 +22,62 @@ This is the storage inventory data model and architecture documentation. TODO: A
This is an implementation of the **permissions** service API using configurable rules to grant access
based on resource identifiers (Artifact.uri values in the inventory data model).
+Official docker image: `images.opencadc.org/storage-inventory/baldur:$VER`
+
## critwall
This is an implementation of the **file-sync** process that runs at a storage site and downloads files.
+Official docker image: `images.opencadc.org/storage-inventory/critwall:$VER`
+
## fenwick
This is an implementation of the **metadata-sync** process that runs at both global inventory and at
storage sites.
+Official docker image: `images.opencadc.org/storage-inventory/fenwick:$VER`
+
## luskan
This is an implementation of the **metadata** service that enables querying the storage inventory at
both global inventory and storage sites. It is an IVOA TAP
service that supports ad-hoc querying of the inventory data model.
+Official docker image: `images.opencadc.org/storage-inventory/luskan:$VER`
+
## minoc
This is an implementation of the **file** service that supports HEAD, GET, PUT, POST, DELETE operations
and IVOA SODA operations.
+Official docker image: `images.opencadc.org/storage-inventory/minoc:$VER`
+
## raven
This is an implementation of the global **locator** service that supports transfer negotiation and direct
file GET requests.
+Official docker image: `images.opencadc.org/storage-inventory/raven:$VER`
+
## ratik
This is an implementation of the **metadata-validate** process that runs at both global inventory and at
storage sites.
+Official docker image: `images.opencadc.org/storage-inventory/ratik:$VER`
+
## ringhold
This is an implementation of part of the **metadata-validate** process that cleans up after a change in
local artifact selection policy. This is used if the new fenwick policy excludes artifacts previously synced.
+Official docker image: `images.opencadc.org/storage-inventory/ringhold:$VER`
+
## tantar
This is an implementation of the **file-validate** process that compares the inventory database against
the back end storage at a storage site.
+Official docker image: `images.opencadc.org/storage-inventory/tantar:$VER`
+
## vault
-UNDER DEVELOPMENT: This is an implementation of an IVOA VOSpace
+This is an implementation of an IVOA VOSpace
service that uses storage-inventory as the back end storage mechanism.
+Official docker image: `images.opencadc.org/storage-inventory/vault:$VER`
+
## cadc-*
These are libraries used in multiple services and applications.