On 2019-04-18 12:52, Scott Koranda wrote:
Hi,
Thanks for the note/update Leif.
Could this note, or some form of this note, become a roadmap document
that you keep and maintain somewhere in
https://github.com/IdentityPython/pyFF
?
Yeah why not!
I confess that I thought I understood where you were going with breaking
pyFF into backend and frontend pieces, but when I look at
https://github.com/TheIdentitySelector
I am confused about just what I would *do* to build a discovery service
that can leverage a pyFF backend server.
Thats a great question. There are two options:
1. you deploy thiss-js on your own domain and use your pyFF instance
as backend MDQ. thiss-js includes a DS, a login button component and
a persistence service.
2. you deploy an html page that runs thiss-ds-js (the client parts
of thiss-js) but uses an existing deployment of thiss-js as persistence
service (eg the one on thiss.io or the future "ra21" one which will
probably live on
seamlessaccess.org somwehre). You still use your
pyFF instance as backend MDQ in this case.
I plan to provide a simple docker container running (2) that can be
deployed along side a pyFF instance.
I think it would be helpful (for me at least) to have some higher level
documentation that showed the architecture, the pieces, and how you
expect them to fit together.
In short, I am trying to understand if I see a path for a small science
team with limited resources to use pyFF + (something) to get what they
get right now with pyFF, or will this really only be something
accessible to large teams going forward.
Yep, understood. The small team deployment pattern is important.
My idea is that the only difference between now and "1.0.0" is that
you'll have to spin up two or maybe three docker containers (if you
want both DS and mgmt app) to get what you today get in a single
container. Its more work but with docker compose its not that much
in practice and the result is much better separation of concerns.
I am happy to create the architecture diagram(s) and associated
documentation with your help if you can dialogue with me. Please let me
know if you want me to contribute in that way.
Sure!
Cheers Leif
Thanks,
Scott K
>
> Hey,
>
> Sorry for the crosspost...
>
> After a few weeks of spending all of my available development bits on
> the various parts of RA21 (cf
github.com/TheIdentitySelector, yes its
> all nodejs!) I'm back to working on pyFF for a bit.
>
> Here is what I have planned for in the quite near term:
>
> 1. merge the api-refactory branch which includes a pyramids-based API
> 2. merge documentation PR from Hannah Sebuliba (thx!)
> 3. tag and release the last monolothic version of pyFF
> 4. in HEAD which becomes the new 1.0.0 release:
> - remove all frontend bits (old discovery, management web app)
> - pyffd will now start pyramids-based API server
> - wsgi will be available/recommended
> - create a new "frontend app" as a separate webpack+nodejs project
> - create docker-compose.yaml that starts pyffd (API) + frontend app
> 5. tag and release 1.0.0 thereby moving pyFF over to semantic versioning
>
> After 4 it makes sense to talk about things like...
>
> - new redis/#nosql backends
> - work on reducing memory footprint
> - pubsub for notifications between MDQ servers
> - more instrumentation & monitoring
> - adaptive aggregation for large-scale deployments
> - elastic search
> - management APIs for integrated editing of local metadata
> - OIDC
> - generating offline MDQ directory structures (cf scripts/mirror-mdq.sh)
>
> Thoughts etc are as usual welcome.
>
> Cheers Leif