Giter Site home page Giter Site logo

leoniephiline / basispoort-sync-client Goto Github PK

View Code? Open in Web Editor NEW
1.0 1.0 0.0 133 KB

An API client to help synchronize institution data with the Basispoort educational material SSO service.

License: Mozilla Public License 2.0

Rust 99.97% Shell 0.03%

basispoort-sync-client's People

Contributors

leoniephiline avatar renovate[bot] avatar

Stargazers

 avatar

Watchers

 avatar

basispoort-sync-client's Issues

Large Error enum

Must be boxed. But is that the best way?

Should the large Error enum be split up?
Should there be one Error enum per module?
Should error source not be included?

Set up CI (but hide credentials)

  • Test on pushes.
  • Test on updates (use updater bot).
  • Test on schedule, as test / acc BP seems to break regularly and we need to have an eye on that.

Payload validation

Any existing crates fitting the simple needs here?

Simple validation of payload data before serialization for POST and PUT

Dependency Dashboard

This issue lists Renovate updates and detected dependencies. Read the Dependency Dashboard docs to learn more.

Awaiting Schedule

These updates are awaiting their schedule. Click on a checkbox to get an update now.

  • chore(deps): lock file maintenance

Detected dependencies

cargo
Cargo.toml
  • base64 0.22.0
  • bytes 1.6.0
  • chrono 0.4.38
  • reqwest 0.12.3
  • serde 1.0.198
  • serde_json 1.0.116
  • serde_urlencoded 0.7.1
  • thiserror 1.0.58
  • tokio 1.37.0
  • tracing 0.1.40
  • url 2.5.0
  • color-eyre 0.6.3
  • dotenvy 0.15.7
  • itertools 0.12.1
  • tokio 1.37.0
  • tracing-error 0.2.0
  • tracing-subscriber 0.3.18
github-actions
.github/workflows/rust.yml
  • actions/checkout v4@b4ffde65f46336ab88eb53be808477a3936bae11

  • Check this box to trigger a request for Renovate to run again on this repository

V2 Institution Search API

New in R2023

Use V2 right away, skip V1.X API for this implementation.

Integration tests (WIP)

  • Search institutions by name
  • Search institutions by BRIN code
  • Search institutions by address
  • Search institutions by postcode
  • Search institutions by city
  • Handle the active only flag
  • Search institutions by governance code

"Hosted Lika" Client as separate crate? (Monorepo)

Base rest client is shared between hosted license provider API client and institutions API client.

Publishers using their own "Lika" do not need the hosted license provider API client.

=> Monorepo with 3 packages? (Base rest Client, hosted license provider API client, institutions API client.)

=> No, use features.

Full synchronizer, agnostic over local user provision

A full synchronizer can be generic over an impl of a local user provider trait.

Hosted sites as cargo feature: Enables hosted sites API client (separate monorepo crate) and hosted sites synchronization (via cfg attrs).

Might add support for self-hosted sites ("Likas")?

Repetitive code in tests

Should tests share any non-test code? (Helpers)
Helpers themselves would need to be tested, too.

Is the clarity of tests muddied by macros and non-macro helpers?

V2 Licenses API

New in R2023

Use V2 right away, skip V1.X API for this implementation.

Unit tests

What can be unit tested?
How can reqwest be mocked?
How can I refactor to make code more testable?

Integration tests

How should I structure integration tests?

Should they run against the real "test-rest" Basispoort endpoints (see current tests in lib.rs)
=> Yes.

Should all tests run sequentially or should they be created such that they can run in parallel? (Difficult if Basispoort endpoints are not mocked.)
=> Run sequentially per each service.

  • hosted license provider service
  • institutions service
  • synchronization permissions service
  • institutions search service (WIP)
  • licenses service (not a priority)

Can tests run in CI while not leaking client certificates in a public project?
=> ?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.