-
Notifications
You must be signed in to change notification settings - Fork 12
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Re-implements as modular server using Express #113
Conversation
…kness in readJson()
Garage does work well; I'm using it for development. I did find a bug, which will need to be fixed before we can support Range requests, but that's a ways off: |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I have only really looked over the changes in AppFactory
as well as some of the files that are imported there to support how express is setup.
I hope my feedback here is helpful regardless of this partial review for the PR.
Thanks for the feedback! Having another set of eyes gives me confidence we're on the right course. |
I would really like to have more feedback on a major change like this, but as this fixes several bugs and removes the obstacles to desired improvements (and doesn't foreclose development on the monolithic server), I will merge this in a week, unless there are objections. |
Features/Fixes
Support for other extensions
Allows the extensibility of #88 and #89 and armadietto+lucchetto in a standard way. Bespoke versions can be implemented by copying
appFactory.js
and adding new middleware. It will be much easier to say "yes" to extensions with a limited audience. Middleware for storage quotas, rate limiting and in-app purchase can be in the archive, but don't have to be in the default configuration.Notes for evaluating
Store
To run the server or test S3-compatible storage, an S3-compatible instance must be running and environment variables set. See
notes/S3-streaming-store.md
. To run automated tests:Automated Tests
The original automated tests are still in
spec/armadietto
. They validate that the monolithic server still functions the same.The automated tests have been copied copied and reworked to allow testing the modular server against the same tests as the monolithic server. The tests starting with
a_
inspec/armadietto
set up the monolithic server and call the tests inspec
. The tests starting withm_
inspec/modular
set up the modular server and call the tests inspec
. Thus, the tests validate that the modular server behaves the same as the monolithic server, aside from a few edge cases.