Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR was opened by the Changesets release GitHub action. When you're ready to do a release, you can merge this and the packages will be published to npm automatically. If you're not ready to do a release yet, that's fine, whenever you add more changesets to main, this PR will be updated.
Releases
@fedimod/fires-server@0.1.0
Minor Changes
#62
d3d6fd8Thanks @ThisIsMissEm! - Add CLI to support setting up a FIRES serverThis work was done in PR #60. The idea is to help someone configure a FIRES server, and eventually provision the issue admin-level bearer token for authentication.
Provided a working installation of a FIRES server, you can run:
Which will prompt you for the following questions:
Both the documentation and homepage URLs are optional, the rest are currently mandatory.
This information will eventually be available when visiting the root of the FIRES server.
#50
647e6afThanks @ThisIsMissEm! - Add required PUBLIC_URL environment variable#36
791d620Thanks @ThisIsMissEm! - Bootstrap fires-server component#47
9455ab7Thanks @ThisIsMissEm! - Add docker images to deploymentsWe're now building both amd64 and arm64 docker images for fires-server.
#72
ce2e791Thanks @ThisIsMissEm! - Added support for NodeInfo ProtocolThis helps discovery of FIRES servers by using the well-known NodeInfo
Protocol. We don't expose usage data
because it's not relevant and the FIRES server doesn't have "users" as such.
We're also currently using a non-standard
protocolof"fires"as theprotocol in NodeInfo Schema is defined as an enum of specific string values, so
isn't extensible without new revisions to their specification, and it lacks a
protocol registry (like what many IETF specs have), so I can't "register" the
"fires"protocol.But at least this gives some discovery information.
#103
8c3372cThanks @ThisIsMissEm! - Add CLI commands for Access TokensThis change introduces the following
node acecommands to manage access tokens on the FIRES reference server:fires:tokens:listfires:tokens:createfires:tokens:delete <token_prefix>Also updates the documentation and seeders to fix a few small issues.
#64
81ebb83Thanks @ThisIsMissEm! - Implemented Labels APIThis provides a new set of APIs to the FIRES reference server, as well as documenting the API of the Labels endpoint(s) in the FIRES protocol.
The FIRES protocol covers reading the collection of all labels and retrieving an individual label as both
text/htmlandapplication/jsonorapplication/ld+json.The non-standard API for managing labels covers creating, updated, deprecating and deleting labels from the FIRES reference server.
#96
8d4aa5aThanks @ThisIsMissEm! - UseDATABASE_URLin libpq compat mode for database connectionsThis change removes the previous
DATABASE_*environment variables, and replaces them with a singularDATABASE_URL. This ensures we have better handling of SSL Certificates for self-signed certificates (e.g., when the postgresql database is on a managed service like DigitalOcean).When using
DATABASE_URLyou can omit the database name (the path component of the connection string), in which case, we will automatically use the combined offires_and the currentNODE_ENVas the database name.Also introduced is
DATABASE_POOL_MAXto configure the database pool size, as we weren't previously using database connection pooling.#90
b026248Thanks @ThisIsMissEm! - Add authentication to APIThe API now requires authentication via HTTP Authorization header using a Bearer token. Each token has a number of scopes or 'abilities', such as read, write, admin. Currently the only API that exists and is protected is the labels API. In the future we may change scopes of tokens to more granular options, e.g.,
read:labels,write:labels, etc, but for now the coarse granularity is fine. The consumer of the FIRES server protocol does not know what scopes they have from the token alone, it is just an opaque access token.Internally in the reference server implementation for FIRES, we're using tokens that can be cryptographically verified before we attempt to check if the token actually exists in the database, which reduces the attack surface on the database compared to always querying for whether a user-supplied token exists in the database. This is inspired by how Ory.sh structures their access tokens. Tokens are prefixed with
fires_.Patch Changes
#46
02f2b07Thanks @ThisIsMissEm! - Migrate from npm to pnpm for better builds#52
56c8d47Thanks @ThisIsMissEm! - Fix docker image labels, these weren't working correctly on edge images#100
ef6e170Thanks @ThisIsMissEm! - Refactor: Improve request testsThis switches us to use the japa plugin approach for request tests, injecting a
assertResponseandrequestvalues intoTestContext, which does thecreateServer/createRequestInjectionlogic automatically. In the future this plugin will be extracted into a stand-alone japa plugin for doing fast request testing.Also ensures the database is correctly setup before tests.
@fedimod/fires-docs@1.1.0
Minor Changes
#64
81ebb83Thanks @ThisIsMissEm! - Implemented Labels APIThis provides a new set of APIs to the FIRES reference server, as well as documenting the API of the Labels endpoint(s) in the FIRES protocol.
The FIRES protocol covers reading the collection of all labels and retrieving an individual label as both
text/htmlandapplication/jsonorapplication/ld+json.The non-standard API for managing labels covers creating, updated, deprecating and deleting labels from the FIRES reference server.
Patch Changes
#46
02f2b07Thanks @ThisIsMissEm! - Migrate from npm to pnpm for better builds#49
138f798Thanks @ThisIsMissEm! - Remove mermaid diagrams & update to vitepress 2.0.0-alpha.3