7.6.0 • Published 2 years ago

@bloom-housing/backend-core v7.6.0

Weekly downloads
21
License
Apache-2.0
Repository
-
Last release
2 years 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

3 years ago

7.3.0

3 years ago

7.4.0

3 years ago

7.5.0

3 years ago

7.6.0

2 years ago

7.0.1-alpha.2

3 years ago

7.0.1-alpha.4

3 years ago

7.0.1-alpha.3

3 years ago

7.0.1-alpha.5

3 years ago

7.0.2

3 years ago

7.0.1

3 years ago

7.0.2-alpha.0

3 years ago

7.1.0

3 years ago

7.2.0

3 years ago

6.0.1-alpha.0

3 years ago

6.0.1-alpha.1

3 years ago

7.0.1-alpha.0

3 years ago

7.0.1-alpha.1

3 years ago

6.0.1-alpha.2

3 years ago

5.1.1-alpha.23

3 years ago

5.1.1-alpha.22

3 years ago

5.1.1-alpha.24

3 years ago

5.1.1-alpha.8

3 years ago

5.1.1-alpha.9

3 years ago

5.1.1-alpha.6

3 years ago

5.1.1-alpha.7

3 years ago

6.0.0

3 years ago

5.1.1-alpha.21

3 years ago

5.1.1-alpha.20

3 years ago

5.1.1-alpha.12

3 years ago

5.1.1-alpha.11

3 years ago

5.1.1-alpha.10

3 years ago

5.1.1-alpha.16

3 years ago

5.1.1-alpha.15

3 years ago

5.1.1-alpha.14

3 years ago

5.1.1-alpha.13

3 years ago

5.1.1-alpha.19

3 years ago

5.1.1-alpha.18

3 years ago

5.1.1-alpha.17

3 years ago

5.1.1-alpha.0

3 years ago

5.1.1-alpha.1

3 years ago

4.4.1-alpha.9

3 years ago

4.4.1-alpha.8

3 years ago

4.4.1-alpha.7

3 years ago

4.4.1-alpha.6

3 years ago

4.4.1-alpha.5

3 years ago

4.4.1-alpha.4

3 years ago

4.4.1-alpha.3

3 years ago

4.4.1-alpha.2

3 years ago

4.4.1-alpha.1

3 years ago

4.4.1-alpha.0

3 years ago

5.1.1-alpha.4

3 years ago

5.1.1-alpha.5

3 years ago

5.1.1-alpha.2

3 years ago

5.1.1-alpha.3

3 years ago

5.0.0

3 years ago

4.3.1-alpha.1

3 years ago

5.1.0

3 years ago

5.0.1-alpha.2

3 years ago

5.0.1-alpha.1

3 years ago

5.0.1-alpha.0

3 years ago

5.0.1-alpha.9

3 years ago

5.0.1-alpha.8

3 years ago

5.0.1-alpha.7

3 years ago

5.0.1-alpha.6

3 years ago

5.0.1-alpha.5

3 years ago

5.0.1-alpha.4

3 years ago

5.0.1-alpha.3

3 years ago

5.0.1-alpha.12

3 years ago

5.0.1-alpha.13

3 years ago

5.0.1-alpha.14

3 years ago

5.0.1-alpha.15

3 years ago

5.0.1-alpha.10

3 years ago

5.0.1-alpha.11

3 years ago

4.4.0

3 years ago

4.4.1-alpha.10

3 years ago

4.4.1-alpha.13

3 years ago

4.4.1-alpha.12

3 years ago

4.4.1-alpha.11

3 years ago

4.2.2-alpha.5

3 years ago

4.2.2-alpha.6

3 years ago

4.2.2-alpha.7

3 years ago

4.2.2-alpha.8

3 years ago

4.2.2-alpha.4

3 years ago

4.2.2-alpha.9

3 years ago

4.3.1-alpha.0

3 years ago

4.3.0

3 years ago

4.2.3

3 years ago

4.1.1-alpha.2

3 years ago

4.1.1-alpha.1

3 years ago

4.1.1-alpha.3

3 years ago

4.2.2-alpha.0

3 years ago

4.2.2-alpha.1

3 years ago

4.2.2-alpha.2

3 years ago

4.2.2-alpha.3

3 years ago

4.2.1-alpha.0

3 years ago

4.2.1-alpha.1

3 years ago

4.2.1-alpha.2

3 years ago

4.1.3-alpha.0

3 years ago

4.2.2

3 years ago

4.1.3-alpha.1

3 years ago

4.2.1

3 years ago

4.2.0

3 years ago

4.1.2

3 years ago

4.1.1-alpha.0

3 years ago

4.0.3

3 years ago

3.0.2

3 years ago

3.0.2-alpha.45

3 years ago

4.1.0

3 years ago

4.0.1

3 years ago

3.0.1-alpha.32

4 years ago

3.0.1-alpha.33

4 years ago

3.0.1-alpha.34

4 years ago

4.0.2

3 years ago

3.0.1-alpha.35

4 years ago

3.0.1-alpha.38

4 years ago

3.0.1-alpha.39

4 years ago

3.0.2-alpha.13

3 years ago

3.0.2-alpha.14

3 years ago

3.0.2-alpha.11

3 years ago

3.0.2-alpha.12

3 years ago

3.0.2-alpha.10

3 years ago

3.0.2-alpha.19

3 years ago

3.0.2-alpha.17

3 years ago

3.0.2-alpha.18

3 years ago

3.0.2-alpha.15

3 years ago

3.0.2-alpha.16

3 years ago

3.0.2-alpha.24

3 years ago

3.0.2-alpha.25

3 years ago

3.0.2-alpha.22

3 years ago

3.0.2-alpha.23

3 years ago

3.0.2-alpha.20

3 years ago

3.0.2-alpha.21

3 years ago

3.0.2-alpha.28

3 years ago

3.0.2-alpha.29

3 years ago

3.0.2-alpha.26

3 years ago

3.0.2-alpha.27

3 years ago

3.0.2-alpha.35

3 years ago

3.0.2-alpha.36

3 years ago

3.0.2-alpha.33

3 years ago

3.0.2-alpha.6

3 years ago

3.0.2-alpha.34

3 years ago

3.0.2-alpha.7

3 years ago

3.0.2-alpha.31

3 years ago

3.0.2-alpha.8

3 years ago

3.0.2-alpha.32

3 years ago

3.0.2-alpha.9

3 years ago

3.0.2-alpha.30

3 years ago

3.0.2-alpha.39

3 years ago

3.0.2-alpha.37

3 years ago

3.0.2-alpha.38

3 years ago

3.0.2-alpha.0

3 years ago

3.0.2-alpha.1

3 years ago

3.0.2-alpha.44

3 years ago

3.0.1

3 years ago

3.0.2-alpha.42

3 years ago

3.0.2-alpha.43

3 years ago

3.0.2-alpha.40

3 years ago

3.0.2-alpha.41

3 years ago

3.0.1-alpha.40

3 years ago

3.0.1-alpha.41

3 years ago

3.0.1-alpha.20

4 years ago

3.0.1-alpha.21

4 years ago

3.0.1-alpha.22

4 years ago

3.0.1-alpha.23

4 years ago

3.0.1-alpha.24

4 years ago

3.0.1-alpha.25

4 years ago

3.0.1-alpha.26

4 years ago

3.0.1-alpha.27

4 years ago

3.0.1-alpha.28

4 years ago

3.0.1-alpha.29

4 years ago

3.0.1-alpha.30

4 years ago

3.0.1-alpha.31

4 years ago

3.0.1-alpha.9

4 years ago

3.0.1-alpha.6

4 years ago

3.0.1-alpha.5

4 years ago

3.0.1-alpha.8

4 years ago

3.0.1-alpha.7

4 years ago

3.0.1-alpha.2

4 years ago

3.0.1-alpha.1

4 years ago

3.0.1-alpha.4

4 years ago

3.0.1-alpha.3

4 years ago

3.0.1-alpha.10

4 years ago

3.0.1-alpha.11

4 years ago

3.0.1-alpha.12

4 years ago

3.0.1-alpha.13

4 years ago

3.0.1-alpha.14

4 years ago

3.0.1-alpha.15

4 years ago

3.0.1-alpha.16

4 years ago

3.0.1-alpha.17

4 years ago

3.0.1-alpha.18

4 years ago

3.0.1-alpha.19

4 years ago

2.0.1-alpha.6

4 years ago

2.0.1-alpha.7

4 years ago

2.0.1-alpha.0

4 years ago

2.0.1-alpha.1

4 years ago

2.0.1-alpha.2

4 years ago

2.0.1-alpha.3

4 years ago

2.0.1-alpha.4

4 years ago

2.0.1-alpha.5

4 years ago

3.0.1-alpha.0

4 years ago

2.0.0

4 years ago

3.0.0

4 years ago

1.0.5

4 years ago

1.0.3

4 years ago

1.0.2

4 years ago

1.0.0

4 years ago

0.3.11

4 years ago

0.3.10

4 years ago

0.3.9

4 years ago

0.3.8

4 years ago

0.3.6

4 years ago

0.3.7

4 years ago

0.3.5

4 years ago

0.3.4

5 years ago

0.2.16

5 years ago

0.2.15

5 years ago

0.2.14

5 years ago

0.2.13

5 years ago

0.2.11

5 years ago

0.2.8

5 years ago

0.2.7

5 years ago