Skip to content

feat: setup fastify boilerplate#38

Merged
bennettrwu merged 44 commits into
multi-tenancyfrom
fastify-boilerplate
Oct 23, 2025
Merged

feat: setup fastify boilerplate#38
bennettrwu merged 44 commits into
multi-tenancyfrom
fastify-boilerplate

Conversation

@bennettrwu
Copy link
Copy Markdown
Contributor

Set up fastify webserver boilerplate.

  • Created libs/base-schema that defines shared api schemas
  • Created libs/session-manager-schema that defines session manager API schema
  • Created libs/base-fastify-server that creates a fastify server and loads default plugins and hooks
  • Created apps/session-manager with toy calculator example

* start fresh

* build(git): configure git

* build(npm,tsc): configure npm workspaces and typescript

* build(prettier): configure prettier code formatter

* style: apply code formatting

* build(editorconfig): add editorconfig file that matches prettier config

* build(eslint): configure eslint code linter

* build(vitest): configure vitest test runner

* build: setup hot reload tools

* build(docker): create dockerfile for monorepo application

* ci(actions): create format, lint, build, and test github actions

* ci(actions): add workflow to report coverage on PRs

* ci(actions): add job to build docker containers

* build(npm): bump npm minimum node version to match docker and actions version

* fix(actions): remove invalid coverage path

* fix(action): fix incorrect job step name for linter

* fix(actions): fix issue where only slowest container platform overrites all other platform images in dockerhub

* fix(action): fix invalid cache-from definition in docker build action

* fix(action): actually push built images in docker build action
@bennettrwu bennettrwu changed the base branch from main to multi-tenancy October 23, 2025 04:51
@bennettrwu bennettrwu closed this Oct 23, 2025
@bennettrwu bennettrwu reopened this Oct 23, 2025
@github-actions
Copy link
Copy Markdown

Base Fastify Server Coverage Report

Code Coverage

Package Line Rate Branch Rate Complexity Health
server 100% 100% 0
server.errors 100% 50% 0
server.hooks.on_request 100% 100% 0
server.plugins 100% 90% 0
Summary 100% (69 / 69) 78% (14 / 18) 0

@github-actions
Copy link
Copy Markdown

Session Manager Coverage Report

Code Coverage

Package Line Rate Branch Rate Complexity Health
src 0% 100% 0
src.app_config 10% 0% 0
src.server 100% 100% 0
src.server.dependency_injection 88% 75% 0
src.server.features.calculator 100% 100% 0
src.server.features.healthcheck 100% 100% 0
src.server.plugins 100% 100% 0
Summary 61% (38 / 62) 75% (9 / 12) 0

@bennettrwu bennettrwu merged commit d20ce9b into multi-tenancy Oct 23, 2025
5 checks passed
@bennettrwu bennettrwu deleted the fastify-boilerplate branch October 23, 2025 05:16
SankalpK1 pushed a commit that referenced this pull request Jun 5, 2026
* Create monorepo (#37)

* start fresh

* build(git): configure git

* build(npm,tsc): configure npm workspaces and typescript

* build(prettier): configure prettier code formatter

* style: apply code formatting

* build(editorconfig): add editorconfig file that matches prettier config

* build(eslint): configure eslint code linter

* build(vitest): configure vitest test runner

* build: setup hot reload tools

* build(docker): create dockerfile for monorepo application

* ci(actions): create format, lint, build, and test github actions

* ci(actions): add workflow to report coverage on PRs

* ci(actions): add job to build docker containers

* build(npm): bump npm minimum node version to match docker and actions version

* fix(actions): remove invalid coverage path

* fix(action): fix incorrect job step name for linter

* fix(actions): fix issue where only slowest container platform overrites all other platform images in dockerhub

* fix(action): fix invalid cache-from definition in docker build action

* fix(action): actually push built images in docker build action

* feat: create base-schema lib for defining shared api schema

* feat(base-schema): define shared api error reply schema

* feat(session-service-schema): define healthcheck api schema

* feat(base-schema,session-service-service): add interface so schema lib can define route method and url

* feat(session-manager-schema): create toy calculator schema to demo usage

* build(session-manager): update watched dependencies

* feat(base-fastify-server): create lib that defines base configuration for fastify server

* feat(base-fastify-server): create logger factory

* feat(base-fastify-server): create fastify server factory that creates logger and registers default plugins

* feat(base-fastify-server): create depdency container and provide to fastify instance

* feat(base-fastify-server): define set of httperrors defined by shared reply schema

* feat(base-fastify-server): add typebox schema validator

* test(base-fastify-server): add unit tests for typebox schema validator

* feat(base-fastify-server): add custom json parser

* test(base-fastify-server): add unit tests for custom json parser

* feat(base-fastify-server): create custom error handler

* test(base-fastify-server): create unit tests for custom error handler

* feat(base-fastify-server): create handler for not found event

* test(base-fastify-server): create unit tests for custom not found handler

* feat(base-fastify-server): add on request handler to scope logger correctly in dependency container

* test(base-fastify-server): create unit tests for scope logger on request hook

* feat(base-fastify-server): export public artifacts

* test(base-fastify-server): write integration test for dependency injection

* test(base-fastify-server): write integration test for server error handling

* test(base-fastify-server): write integration test for server request validation

* build(session-manager): update dockerfile with new dependency

* feat(session-manager): define app config loader and provider

* docs(session-manager): add template.env to document config schema

* feat(session-manager): setup fastify server and entrypoint

* feat(session-manager): load swagger ui plugin is in development mode

* feat(session-manager): register app dependencies with container

* feat(session-manager): define healthcheck endpoint

* test(session-manager): write unit tests for healthcheck controller

* test(session-manager): write integration test for healthcheck endpoints

* test(session-manager): create integration tests for api-docs endpoint

* feat(session-manager): implement toy calculator route to demo boilerplate

* test(session-manager): write unit tests for calculator controller and service

* test(session-manager): write integration tests for calculator endpoints

* build: enable pretty print for logging in development mode

* build(session-manager): update docker container with new dependencies

* build(npm): update package-lock

* ci(base-fastify-server): add coverage reporting
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant