Skip to content

Commit 6a426cb

Browse files
committed
Some initial documentation of the push metadata feature
1 parent 18863e9 commit 6a426cb

File tree

1 file changed

+32
-0
lines changed

1 file changed

+32
-0
lines changed

docs/metadata_push.md

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
# Engineblock metadata storage and push
2+
3+
EngineBlock has its own local database table that stores the remote SP and IdP entities
4+
it knows about: `sso_provider_roles_eb5`. This table contains the entities in a ready
5+
to consume format so logins can be handled quickly and without external dependencies
6+
on other services or APIs.
7+
8+
## Push connections
9+
10+
To fill this table and keep it up to date, the EngineBlock API (engine-api vhost)
11+
has a `/api/connections` endpoint. The tool that administers the known entities
12+
(OpenConext-manage) can push an update to this endpoint with the new state of
13+
all entities. Engine will process this set and updates its internal table appropriately
14+
(incrementally, thus without downtime).
15+
16+
## Push contents
17+
18+
The API accepts a HTTP POST of a JSON hash with the complete state of all remote entities
19+
in it. OpenConext Manage implements this. See
20+
[the Manage wiki(https://github.com/OpenConext/OpenConext-manage/wiki/Push-Metadata)
21+
for some implementation details of the push on the manage side.
22+
23+
A push with 0 entities will be rejected to prevent mistakes from clearing out the database.
24+
25+
## Push api configuration and constraints.
26+
27+
The push API is enabled via the `api.metadata_push` feature flag and requires
28+
HTTP Basic Authentication by a user with the rights
29+
`ROLE_API_USER_METADATA_PUSH`. A memory_limit can be set in the configuration
30+
to prevent the processing of the incoming entities set to run out of memory via
31+
the setting `engineblock.metadata_push_memory_limit`. This is all configured
32+
under EngineBlock's `app/config/` dir.

0 commit comments

Comments
 (0)