0.7.0 • Published 1 month ago

@fraym/migrations v0.7.0

Weekly downloads
-
License
MIT
Repository
github
Last release
1 month ago

migrations-nodejs

Client implementation in javascript for the migrations service.

Installation

npm i @fraym/migrations

CLI command

Use the migrations cli command to automatically apply all your Fraym schemas to the corresponding Fraym service.

Your type schemas have to match the glob you specify in the MIGRATIONS_SCHEMA_GLOB env variable (default: ./src/**/*.graphql).

API: You can specify the address (and port) of the migrations service instance you use in the MIGRATIONS_SERVER_ADDRESS env variable (default: ://127.0.0.1), to use secure connections (https / wss) set MIGRATIONS_SECURE to true. You will also need to set the MIGRATIONS_API_TOKEN variable. The value of that token has to match the token configured in the migrations service.

Use the MIGRATIONS_NAMESPACE env variable to restrict all migrations to your namespace. This is useful if multiple apps share the Fraym services. Note: You cannot name your type or namespace by a Fraym prefix. This is a reserved prefix for Fraym apps.

You need to add a file that contains all built-in directives to your type schemas. The latest version of this file can be found here.

Best is to start with a structure like the one presented in our example directory.

Config

Use a .env file or env variables to configure the command:

MIGRATIONS_SERVER_ADDRESS=http://127.0.0.1
MIGRATIONS_API_TOKEN=change-me
MIGRATIONS_SCHEMA_GLOB=./**/*.graphql
MIGRATIONS_NAMESPACE=

Env variable placeholders in migrations

You can use placeholders that match environment variables in argument strings in your schema definitions:

In the following example the {{env.BACKEND_HOSTNAME}} part will be replaced by the value of the BACKEND_HOSTNAME environment variable. Please add your used env variables to the .env file that is used to configure the migration command.

type TestType {
    value: String
        @webhook(
            url: "http://{{env.BACKEND_HOSTNAME}}/event-organizing/contingent/projections/frontend/contingent-management/webhook"
            method: "GET"
            header: [{ key: "Content-Type", value: "'application/json'" }]
            body: [
                { key: "metadata", value: "metadata" }
                { key: "payload", value: "payload" }
                { key: "projection", value: "projection" }
            ]
        )
}

Transformations

  • If a crud type is renamed the transformation has to refer to the last used name, not to the new one
0.7.0

1 month ago

0.6.1

2 months ago

0.6.0

3 months ago

0.3.0

6 months ago

0.2.0

10 months ago

0.5.0

5 months ago

0.4.1

6 months ago

0.4.0

6 months ago

0.5.1

5 months ago

0.1.0

11 months ago