Commit Graph
75 Commits
Author SHA1 Message Date
Ximon Eighteen 8aed66bfde Document more details on how the token and user details are passed back to Lagosta post OpenID Connect login. 2021-07-28 11:29:00 +02:00
Ximon Eighteen f508608cb3 Minor improvements to the login flow multi-user developer doc. 2021-07-28 11:15:42 +02:00
Ximon Eighteen cdcd926082 Use the PlantUML Online service to render the diagrams as GitHub doesn't support plantuml syntax rendering. 2021-07-27 16:56:58 +02:00
Ximon Eighteen 07def92bda Initial atttempt at documenting the multi-user login flows from a developer perspective. 2021-07-27 16:54:52 +02:00
Tim Bruijnzeels 85378ff311 Cache the repository content: work around slow deserialization. (#606) 2021-07-16 11:02:47 +02:00
Ximon EighteenandGitHub cdaf0f35b0 Add some images to demonstrate Cyprss interactive UI testing with Krill. 2021-07-12 17:01:26 +02:00
Ximon Eighteen 475b644019 Fix doc image filename and trim doc image border. 2021-07-12 17:00:41 +02:00
Ximon Eighteen 40388d8106 Add some images for use in the development docs. 2021-07-12 16:56:30 +02:00
Tim BruijnzeelsandGitHub ff85ea5170 Release 0.9 (#523) 2021-06-01 12:54:50 +02:00
Tim Bruijnzeels 67227ffaf4 Update developer documentation (#527) 2021-05-20 12:51:52 +02:00
Tim Bruijnzeels 83bc1d7815 Update rc1 to rc2 in openapi spec. 2021-05-12 09:48:10 +02:00
Tim BruijnzeelsandGitHub 8ae546039a Remove resource classes (and withdraw objects) when a parent is removed (#508) 2021-05-04 14:58:28 +02:00
Tim BruijnzeelsandGitHub ba6ee80423 Updates for the v0.9.0-rc1 release (#489)
* Add documentation on releasing.
* Update version in Cargo.
* Update versions in openapi spec.
* Update changelog
2021-04-20 20:13:59 +02:00
Ximon EighteenandGitHub 13b6f7d1f3 Security tweaks (#382) (#484)
* Encrypt session state using ChaCha20-Poly1305 instead of AES-GCM.
* Replace config file users login use of insecure unsalted SHA2 password hashing with secure scrypt salted password hashing.
* Log the start of the request before determining the actor.
* Allow sufficient time for password hashing delays during login with config file user based tests..
* Synced with Lagosta commit b49f23de.
2021-04-20 00:47:22 +02:00
Tim BruijnzeelsandGitHub b43a6815cf Inconsistent and unacceptable token references (#433) (#483) 2021-04-19 22:23:02 +02:00
Tim BruijnzeelsandGitHub 3b139e4a9f Clippy and spelling fixes (#471)
* Fix clippy warnings.
* Fix spelling - as agreed use american spelling in code (like RFCs do as well).
2021-04-15 14:42:32 +02:00
2917e21c3b Ran cargo update (#366)
* Ran cargo update.
* Upgrade Oso and remove no-longer needed workaround.

Co-authored-by: Ximon Eighteen <3304436+ximon18@users.noreply.github.com>
2021-04-15 14:41:32 +02:00
7cb5674033 Stabilize API and CLI (#330 and #360)
* Move child_request API endpoint for conststency. (#330)
* Move get RFC 8183 Publisher Request API endpoints (#330)
* Accept XML and json to add/update parent on same endpoints (#330)
* Simplify the JSON to add a child and remove unused fields. (#330)
* Update path to child_request in openapi spec.
* Update path to publisher request.
* Update api spec and documentation.
* Fix update parent API documentation and call by CLI.
* CLI stability
* Update pubd OpenAPI spec t o match changes made to the Krill API.
* Update the e2e test client code to submit only the id_cert and not the whole RFC8183 request, as required by changes made to the Krill API.

Co-authored-by: Ximon Eighteen <3304436+ximon18@users.noreply.github.com>
2021-04-12 17:24:41 +02:00
Ximon EighteenandGitHub 5c15953738 Add developer docs for the multi-user feature. (#456) 2021-04-12 12:27:31 +02:00
a715c82f7f Remove embedded repo/ca choices (#461)
* Remove embedded repository contact option, migrate commands and events.
* Migrate old CA init events. Test upgrade from 0.6.0.
* Migrate embedded in CA history.

Co-authored-by: Ximon Eighteen <3304436+ximon18@users.noreply.github.com>
2021-04-01 17:18:28 +02:00
Ximon EighteenandGitHub f3e8023be5 Support fine grained access per CA (resolves #437) (#443)
- Various changes to support a grey policy in between black and white approach of permitting or denying access to CAs entirely, whereby a user can have a different role in one CA than in another.
- Introduces the NoResourceType for requests not relating to a specific "resource", e.g. CA, such as LOGIN. NoResourceType maps to `nil` in Oso policy language.
- Add support for Permission constants in Polar files. Build the Permission enum using a macro.
- Added CA_ADMIN (for bulk operations) and CA_DELETE permissions.
- Support loading more than one custom auth policy file.
- Checks were missing on some API calls if the user had the necessary permission *on the relevant resources*.
- Rename the team policy as a demo to indicate that it is educational only.
- Split a role-per-ca demo out of the team policy demo.
- Extend the with_ta Cypress test to cover the role-per-ca ca demo policy (as it creates the needed data).
- Don't misrepresent an external policy file in log statements as being internal.
- Better comments describing what the tests are doing.
- Remove unused role parameter in team access demo policy.
- Add disallow() in Oso policies as a way to define deny rules.
2021-03-25 21:35:38 +01:00
23be0b5ef7 Make testbed fully configurable through config section
* Let users configure the AIA to use with TA certificates. Set 'ta_aia' in the config file. (#409)
* Use explicit configuration section for testbed, no longer rely on magic env variables.

Note: this will all be revised again if/when the Publication server and TA vs CA code is fully separated in future.

Co-authored-by: Ximon Eighteen <3304436+ximon18@users.noreply.github.com>
2021-03-22 16:53:41 +01:00
e662c1553b Change to a hybrid event sourcing model for CAs and Repository. (#426)
This allows us to keep the full history of semantically important events, while not spamming the history and avoiding excessive use of disk space. See issues #370 and #423.

This is a substantial change. Highlights follow:
* Added a developer documentation section
* No longer using events for manifest/crl generation (#370)
* No longer using events for publication deltas (#423)
* Removed pre 0.6.0 migration code - people will have to upgrade to at least 0.6.0 first
* Added migration code for 0.6.0-0.8.1 to this
* Migrate repository by doing a keyroll. (#370)
* Remove archiving code for commands (no longer applicable)

Minor other fixes:
* Use a swap file when writing (avoid corrupt json if disk is full) (#370)
* Make removing publisher content idempotent for publishers already removed.

Co-authored-by: Ximon Eighteen <3304436+ximon18@users.noreply.github.com>
Co-authored-by: Jasper den Hertog <jasper@plainspace.com>
2021-03-17 12:08:36 +01:00
Ximon EighteenandGitHub cf1f8a9c16 Improvements and fixes for e2e testing on the Krill dev branch (#439)
Note: Until merged to master this branch requires that a branch by the same name exists in the rpki-deploy repo with the corresponding changes to support these changes, which include:

- OpenAPI YML corrections.
- Support the new way to activate the TA.
- FIX: Include the correct ta.cer URI in the TAL.
- Use two seprarate Python libraries for Krill: one for CA REST SAPIs and one for PUB REST APIs.
- FIX: Test for the actual CAs and resources to create, as the presence of the testbed CA violates the previous check assumptions.
- FIX: Resource ASN, v4 and v6 values can no longer be assumed to have the same sort order as when given to Krill.
- Factor out test suite code into helper functions for better readability and maintainability.
- Retry RTR fetching (needed for ROAs obtained from Rcynic Lihttpd server served JSON as otherwise connecting too early results in SyncTimeout).

Known issues: on failure all RP tests will retry 3 times while actually only the Rcynic test should retry.
2021-03-15 12:10:08 +01:00
Ximon EighteenandGitHub 58c9cb5a4b Use strongly typed permissions in policy rules. (#417)
* Use strongly typed Permission checks instead of unrestricted String based checks.

* FIX: Don't include Permission:: in the message logged at WARN level about a user not having permission, only log the permission name, e.g. CA_CREATE.

* FIX: Also update the team policy demo polar file to use the new Permission type.
2021-02-10 12:29:53 +01:00
Ximon EighteenandGitHub fa59e69d59 Bump 0.8.1-bis -> 0.8.2-bis. (#393) 2021-01-15 15:20:39 +01:00
Tim Bruijnzeels ece0950419 Remove HATEOS links from publisher list (make API consistent #330) 2021-01-07 09:56:26 +01:00
Tim Bruijnzeels 62aa602c4d Add openapi spec for krillpubd (#353) 2020-12-16 14:37:14 +01:00
Tim Bruijnzeels 3513f9e45b Update openapi spec for CA and PUBD split. (#353) 2020-12-16 14:21:44 +01:00
Ximon Eighteen 472a0e4751 Merge multi-user branch. Uses Lagosta master branch commit a7e73cba which includes multi-user support. 2020-12-07 16:55:40 +01:00
Tim Bruijnzeels 07dc36b9b9 Update versions. 2020-11-16 16:05:41 +01:00
Tim Bruijnzeels a318328a06 Update development version. 2020-10-27 09:00:12 +01:00
Tim Bruijnzeels fbc17548a0 Update version for release. 2020-10-26 15:14:42 +01:00
Tim Bruijnzeels 8a588a19d0 Update openapi spec wrt 0.8.0-rc1 and ROA functions. 2020-10-14 16:49:04 +02:00
Tim Bruijnzeels 79cb188e57 Remove date and version from man pages as they are poorly maintainable, and not interesting here. 2020-10-07 18:13:10 +02:00
Rafael CintraandTim Bruijnzeels 42fdd5ccf6 Small fixes for the openapi specification. 2020-09-08 09:56:35 +02:00
Ximon Eighteen cc6ab21258 Merge branch 'master' into 0.8.0-RC-dev 2020-08-27 09:45:56 +02:00
ximon18andGitHub 31f6ffd5db FIX: spelling error (thanks Lintian!) 2020-07-24 13:19:45 +02:00
Tim Bruijnzeels 4bb71cf7ad Update versions and changelog for release. 2020-07-06 12:24:11 +02:00
Tim Bruijnzeels 206cfc5c80 Update versions for 0.8.0 RC development. 2020-06-29 10:20:00 +02:00
Tim Bruijnzeels 3e517c0fa8 Update version to 0.7.2 2020-06-28 22:57:50 +02:00
Tim Bruijnzeels 5e42cc0031 Update development version. 2020-06-28 22:43:34 +02:00
Tim Bruijnzeels 627bf8bdca Update version to 0.7.1 2020-06-25 09:40:59 +02:00
ximon18andGitHub 7b75f52a8d Man page ver bump (#266)
* Bump krill man page to v0.7.0.

* Bump krillc man page to v0.7.0.
2020-06-24 11:47:09 +02:00
Tim BruijnzeelsandGitHub e706465d45 Change roa stale to roa unseen (#267) 2020-06-24 11:43:21 +02:00
Tim BruijnzeelsandGitHub d3e64a5b07 Merge pull request #265 from NLnetLabs/0.6.0-plus
0.6.0 plus
2020-06-23 16:24:09 +02:00
Ximon Eighteen 8431642a4a Create Krill DEB and RPM packages via GH actions:
- Assumes that the target system has ca-certificates installed already.
  - Vendor OpenSSL to support Ubuntu 16.04 which only has OpenSSL 1.0.0.
  - Use GH caching to avoid repeat compilation of unchanging cargo deb and krill dependencies.
  - Build in Docker containers as GH runners have too many non-standard packages and libraries pre-installed.
  - Sanity check the created DEB in targeted O/S versions via LXC/LXD containers (for systemd support).
2020-06-23 12:55:17 +02:00
Tim Bruijnzeels 9e58f528e0 Updating versions for release 0.7 2020-06-19 16:41:30 +02:00
Tim Bruijnzeels cb1ad601ca Clean up unneeded BGP analysis endpoints. (#259) 2020-06-19 10:18:19 +02:00
Tim Bruijnzeels 437a9ad89e Add full BGP analysis description to openapi spec. (#259) 2020-06-18 17:14:38 +02:00