Eric Eastwood
9078abf4f1
Timeout requests and stop processing further ( #204 )
...
Fix https://github.com/matrix-org/matrix-public-archive/issues/148
Fix https://github.com/matrix-org/matrix-public-archive/issues/40
- Apply timeout middleware to all room directory and room routes
- Stop messing with the response after we timeout. Fix https://github.com/matrix-org/matrix-public-archive/issues/148
- This also involves cancelling any `async/await` things like requests in the routes so we throw an abort error instead of continuing on. Fix https://github.com/matrix-org/matrix-public-archive/issues/40
- Also abort the route if we see that the user closed the request before we could respond to them
- Bumps minimum supported Node.js version to v18 because we're now using the built-in native `fetch` in Node.js vs `node-fetch`. This gives us the custom `signal.reason` that we aborted with instead of a generic `AbortError`.
- This also means we had to add some instrumentation for `fetch` which uses `undici` under the hood. Settled on some unofficial instrumentation: [`opentelemetry-instrumentation-fetch-node`](https://www.npmjs.com/package/opentelemetry-instrumentation-fetch-node )
2023-05-02 00:39:01 -05:00
Eric Eastwood
b39d7caf31
Add linting to CI ( #74 )
...
- Prettier
- ESLint
2022-09-27 22:21:00 -05:00
Eric Eastwood
780600e3dd
Containerize app (make a Docker image for `matrix-public-archive`) ( #22 )
...
Containerize app (make a Docker image for `matrix-public-archive`)
```
ghcr.io/matrix-org/matrix-public-archive/matrix-public-archive
```
... with a variety of tags!
Packages viewable on https://github.com/matrix-org/matrix-public-archive/pkgs/container/matrix-public-archive%2Fmatrix-public-archive
2022-06-15 02:28:18 -05:00
Eric Eastwood
cda2d98df0
Add testing to CI ( #20 )
...
1. Build test homeserver Docker images which can federate with each other
2. Run end-to-end (e2e) tests
#### Dev notes
Sharing variables across jobs when the `services` field can't access the `env` context, https://github.community/t/how-to-use-env-with-container-image/17252/24
```yaml
env:
FOO: bar
jobs:
set_env:
outputs:
var: ${{ steps.save_var.outputs.var }}
steps:
- id: save_var
run: echo "::set-output name=var::${{ env.FOO }}"
actual_job:
needs: set_env
container:
image: ...whatever_you_need_here...${{ needs.set_env.outputs.var }}
```
2022-06-15 00:59:41 -05:00