Skip to content

Latest commit

 

History

History
42 lines (34 loc) · 3.01 KB

M9.md

File metadata and controls

42 lines (34 loc) · 3.01 KB

Milestone 9

Summary of Activity from 23/12/2021 to 24/01/2022

The milestone was dedicated to "tie up loose ends". The main loose ends was to update to Http Message Signatures v07 so that the code can run on Java or JS clients or servers. One hope here is that this may be of interest to

  • companies interested in the IETF Standard (people working with AWS perhaps, since the standard is edited by Annabelle Backman of Amazon where it started as SIGV4)
  • Solid Java or JavaScript servers wishing to add Http Signature authentication, since the code compiles to Java and JS.
  • Solid Clients such as Dokieli

The hope is to have something minimal that can be used very widely.

Signing Http Messages

Continuing on work from the previous Milestone on "Signing HTTP Messages":

  1. Enhancements to bobcats PR 48. The changes can be seen more clearly in the branch history.
  2. Consolidate httpSig
    1. After research, decided to use IO monad for both Akka and http4s to deal with effects
    2. using Scala Match Types, following the example of banana-rdf Scala3, we're able to abstract the HTTP Model of Akka and Http4s frameworks (java and JS), for maximum reduction of code duplication between HTTP4s and Akka versions. As a result we now have one set of test suites that cover both frameworks. As an example the > 700 line HttpMessageSigningSuite tests is implemented in Akka here. (Neither http4s nor Akka provide a simple function to parse a string into an HTTP Message sadly, or most of that Akka subclass code could have been compressed to one line)

Remaining work to be done:

  1. Finish HttpSig
    • finish implementing generic tests for http signature and specific test for http4s
    • publish artifacts for bobcats and httpsig (at this point SNAPSHOT artifacts)
  2. Use HttpSig library
    1. replace previous implementation in the Reactive Solid Server
    2. in the SolidCtrlApp so that a
  3. polish the bobcats PR - the current version works but the API needs improvement