7.6.0 • Published 1 year ago

@bloom-housing/backend-core v7.6.0

Weekly downloads
21
License
Apache-2.0
Repository
-
Last release
1 year ago

Bloom Backend Services

This package is a NestJS application that provides a core set of backend services via REST API endpoints to apps using the Bloom Housing framework. Information is stored in a Postgres database, accessed via TypeORM.

OpenAPI Documentation

OpenAPI (fka Swagger) documentation is automatically generated by the server at http://localhost:3100/docs/ for a standard local development environment. A raw JSON version of the schema is also available at /docs-json/, suitable for API client code generation or other code-based consumers.

Getting Started

  • Install Node.js 14.x brew install node@14.
  • Install Postgres 12 brew install postgresql
  • Copy the .env.template within backend/core to .env and edit variables appropriate to your local environment. Ensure sure the Database URL and Test Database URL match your Postgres configuration.
  • Install dependencies yarn install within backend/core

Seeding the Database

There are two databases used in this project: bloom and bloom_test. The first is used every time you are starting a project with yarn dev and second one is only used in end-to-end tests. Corresponding TypeORM configs are defined in ormconfig.ts and ormconfig.test.ts. If you are just starting to work with the projects it's best to simply run:

yarn && yarn db:reseed

which will create the bloom DB for you, migrate it to the latest schema, and seed with appropriate dev data. If running the reseed command requires that you input a password for Postgres, set the following environment variables: PGUSER to postgres and PGPASSWORD to the default password you inputted for the postgres user during Postgres installation. If you get the FATAL: database "<user>" does not exist error please run: createdb <user> first.

Dropping the DB:

yarn db:drop

Creating the DB:

yarn db:create

Seeding the DB:

yarn db:seed

Generating a new migration:

yarn db:migration:generate

Applying migrations:

yarn db:migration:run

Running Tests

End-to-end tests:

yarn test:e2e:local

Unit tests:

yarn test

Translations

The backend keeps translations for email related content in the DB in the translations table. The /translations endpoint exposes CRUD operations on this table (admin only). Translations are defined for each county code and language pair e.g. (Alameda, en). To modify a particular translation pair:

  1. Fetch GET /translations and list all the translations
  2. Find an ID of a pair that interest you
  3. Use PUT /translations/:translationId to modify it's content

Environment Variables

NameDescriptionDefaultType
PORTPort number the server will listen to for incoming connections3100number
NODE_ENVControls build optimization and enables some additional logging when set to developmentdevelopment"development" | "production"
DATABASE_URLDatabase connectionpostgres://localhost/bloomstring
TEST_DATABASE_URLTest database connectionpostgres://localhost/bloom_teststringstring
THROTTLE_TTLRate limit TTL in seconds (currently used only for application submission endpoint)60number
THROTTLE_LIMITMax number of operations in given time window THROTTLE_TTL after which HTTP 429 Too Many Requests will be returned by the server2number
EMAIL_API_KEYSendgrid API key (see sendgrid docs for creating API keysAvailable internallystring
APP_SECRETSecret used for signing JWT tokens (generate it with e.g. openssl rand -hex 48)Available internallystring
PARTNERS_PORTAL_URLURL for partners sitehttp://localhost:3001string
7.3.1

1 year ago

7.3.0

1 year ago

7.4.0

1 year ago

7.5.0

1 year ago

7.6.0

1 year ago

7.0.1-alpha.2

2 years ago

7.0.1-alpha.4

1 year ago

7.0.1-alpha.3

1 year ago

7.0.1-alpha.5

1 year ago

7.0.2

1 year ago

7.0.1

1 year ago

7.0.2-alpha.0

1 year ago

7.1.0

1 year ago

7.2.0

1 year ago

6.0.1-alpha.0

2 years ago

6.0.1-alpha.1

2 years ago

7.0.1-alpha.0

2 years ago

7.0.1-alpha.1

2 years ago

6.0.1-alpha.2

2 years ago

5.1.1-alpha.23

2 years ago

5.1.1-alpha.22

2 years ago

5.1.1-alpha.24

2 years ago

5.1.1-alpha.8

2 years ago

5.1.1-alpha.9

2 years ago

5.1.1-alpha.6

2 years ago

5.1.1-alpha.7

2 years ago

6.0.0

2 years ago

5.1.1-alpha.21

2 years ago

5.1.1-alpha.20

2 years ago

5.1.1-alpha.12

2 years ago

5.1.1-alpha.11

2 years ago

5.1.1-alpha.10

2 years ago

5.1.1-alpha.16

2 years ago

5.1.1-alpha.15

2 years ago

5.1.1-alpha.14

2 years ago

5.1.1-alpha.13

2 years ago

5.1.1-alpha.19

2 years ago

5.1.1-alpha.18

2 years ago

5.1.1-alpha.17

2 years ago

5.1.1-alpha.0

2 years ago

5.1.1-alpha.1

2 years ago

4.4.1-alpha.9

2 years ago

4.4.1-alpha.8

2 years ago

4.4.1-alpha.7

2 years ago

4.4.1-alpha.6

2 years ago

4.4.1-alpha.5

2 years ago

4.4.1-alpha.4

2 years ago

4.4.1-alpha.3

2 years ago

4.4.1-alpha.2

2 years ago

4.4.1-alpha.1

2 years ago

4.4.1-alpha.0

2 years ago

5.1.1-alpha.4

2 years ago

5.1.1-alpha.5

2 years ago

5.1.1-alpha.2

2 years ago

5.1.1-alpha.3

2 years ago

5.0.0

2 years ago

4.3.1-alpha.1

2 years ago

5.1.0

2 years ago

5.0.1-alpha.2

2 years ago

5.0.1-alpha.1

2 years ago

5.0.1-alpha.0

2 years ago

5.0.1-alpha.9

2 years ago

5.0.1-alpha.8

2 years ago

5.0.1-alpha.7

2 years ago

5.0.1-alpha.6

2 years ago

5.0.1-alpha.5

2 years ago

5.0.1-alpha.4

2 years ago

5.0.1-alpha.3

2 years ago

5.0.1-alpha.12

2 years ago

5.0.1-alpha.13

2 years ago

5.0.1-alpha.14

2 years ago

5.0.1-alpha.15

2 years ago

5.0.1-alpha.10

2 years ago

5.0.1-alpha.11

2 years ago

4.4.0

2 years ago

4.4.1-alpha.10

2 years ago

4.4.1-alpha.13

2 years ago

4.4.1-alpha.12

2 years ago

4.4.1-alpha.11

2 years ago

4.2.2-alpha.5

2 years ago

4.2.2-alpha.6

2 years ago

4.2.2-alpha.7

2 years ago

4.2.2-alpha.8

2 years ago

4.2.2-alpha.4

2 years ago

4.2.2-alpha.9

2 years ago

4.3.1-alpha.0

2 years ago

4.3.0

2 years ago

4.2.3

2 years ago

4.1.1-alpha.2

2 years ago

4.1.1-alpha.1

2 years ago

4.1.1-alpha.3

2 years ago

4.2.2-alpha.0

2 years ago

4.2.2-alpha.1

2 years ago

4.2.2-alpha.2

2 years ago

4.2.2-alpha.3

2 years ago

4.2.1-alpha.0

2 years ago

4.2.1-alpha.1

2 years ago

4.2.1-alpha.2

2 years ago

4.1.3-alpha.0

2 years ago

4.2.2

2 years ago

4.1.3-alpha.1

2 years ago

4.2.1

2 years ago

4.2.0

2 years ago

4.1.2

2 years ago

4.1.1-alpha.0

2 years ago

4.0.3

2 years ago

3.0.2

2 years ago

3.0.2-alpha.45

2 years ago

4.1.0

2 years ago

4.0.1

2 years ago

3.0.1-alpha.32

2 years ago

3.0.1-alpha.33

2 years ago

3.0.1-alpha.34

2 years ago

4.0.2

2 years ago

3.0.1-alpha.35

2 years ago

3.0.1-alpha.38

2 years ago

3.0.1-alpha.39

2 years ago

3.0.2-alpha.13

2 years ago

3.0.2-alpha.14

2 years ago

3.0.2-alpha.11

2 years ago

3.0.2-alpha.12

2 years ago

3.0.2-alpha.10

2 years ago

3.0.2-alpha.19

2 years ago

3.0.2-alpha.17

2 years ago

3.0.2-alpha.18

2 years ago

3.0.2-alpha.15

2 years ago

3.0.2-alpha.16

2 years ago

3.0.2-alpha.24

2 years ago

3.0.2-alpha.25

2 years ago

3.0.2-alpha.22

2 years ago

3.0.2-alpha.23

2 years ago

3.0.2-alpha.20

2 years ago

3.0.2-alpha.21

2 years ago

3.0.2-alpha.28

2 years ago

3.0.2-alpha.29

2 years ago

3.0.2-alpha.26

2 years ago

3.0.2-alpha.27

2 years ago

3.0.2-alpha.35

2 years ago

3.0.2-alpha.36

2 years ago

3.0.2-alpha.33

2 years ago

3.0.2-alpha.6

2 years ago

3.0.2-alpha.34

2 years ago

3.0.2-alpha.7

2 years ago

3.0.2-alpha.31

2 years ago

3.0.2-alpha.8

2 years ago

3.0.2-alpha.32

2 years ago

3.0.2-alpha.9

2 years ago

3.0.2-alpha.30

2 years ago

3.0.2-alpha.39

2 years ago

3.0.2-alpha.37

2 years ago

3.0.2-alpha.38

2 years ago

3.0.2-alpha.0

2 years ago

3.0.2-alpha.1

2 years ago

3.0.2-alpha.44

2 years ago

3.0.1

2 years ago

3.0.2-alpha.42

2 years ago

3.0.2-alpha.43

2 years ago

3.0.2-alpha.40

2 years ago

3.0.2-alpha.41

2 years ago

3.0.1-alpha.40

2 years ago

3.0.1-alpha.41

2 years ago

3.0.1-alpha.20

2 years ago

3.0.1-alpha.21

2 years ago

3.0.1-alpha.22

2 years ago

3.0.1-alpha.23

2 years ago

3.0.1-alpha.24

2 years ago

3.0.1-alpha.25

2 years ago

3.0.1-alpha.26

2 years ago

3.0.1-alpha.27

2 years ago

3.0.1-alpha.28

2 years ago

3.0.1-alpha.29

2 years ago

3.0.1-alpha.30

2 years ago

3.0.1-alpha.31

2 years ago

3.0.1-alpha.9

2 years ago

3.0.1-alpha.6

2 years ago

3.0.1-alpha.5

2 years ago

3.0.1-alpha.8

2 years ago

3.0.1-alpha.7

2 years ago

3.0.1-alpha.2

2 years ago

3.0.1-alpha.1

2 years ago

3.0.1-alpha.4

2 years ago

3.0.1-alpha.3

2 years ago

3.0.1-alpha.10

2 years ago

3.0.1-alpha.11

2 years ago

3.0.1-alpha.12

2 years ago

3.0.1-alpha.13

2 years ago

3.0.1-alpha.14

2 years ago

3.0.1-alpha.15

2 years ago

3.0.1-alpha.16

2 years ago

3.0.1-alpha.17

2 years ago

3.0.1-alpha.18

2 years ago

3.0.1-alpha.19

2 years ago

2.0.1-alpha.6

2 years ago

2.0.1-alpha.7

2 years ago

2.0.1-alpha.0

2 years ago

2.0.1-alpha.1

2 years ago

2.0.1-alpha.2

2 years ago

2.0.1-alpha.3

2 years ago

2.0.1-alpha.4

2 years ago

2.0.1-alpha.5

2 years ago

3.0.1-alpha.0

2 years ago

2.0.0

2 years ago

3.0.0

2 years ago

1.0.5

3 years ago

1.0.3

3 years ago

1.0.2

3 years ago

1.0.0

3 years ago

0.3.11

3 years ago

0.3.10

3 years ago

0.3.9

3 years ago

0.3.8

3 years ago

0.3.6

3 years ago

0.3.7

3 years ago

0.3.5

3 years ago

0.3.4

3 years ago

0.2.16

4 years ago

0.2.15

4 years ago

0.2.14

4 years ago

0.2.13

4 years ago

0.2.11

4 years ago

0.2.8

4 years ago

0.2.7

4 years ago