dgraph-init v0.0.2
Dgraph-Init
CLI tool for setting up dev instance of dgraph database

To create a db project using dgraph-init, run any of the following command and answer the command prompt questions:
$ npx dgraph-initAuthToken
you can find your defualt AuthToken inside the .env fie named DEV_DGRAPH_GRAPHQL_KEY
Endpoints
- GraphQl -
localhost:8080/graphql - lambda -
localhost:8686/graphql-worker - admin -
localhost:8080/admin - ratelUi -
localhost:8000
Prerequisites
- Make sure you have
dockeranddocker-composeinstalled.
You can use npm db to manage your docker containers related to your database.
db is just a sorthand for docker-compose -f ./devCluster.yml --env-file .env so you can use it as docker-compose.
db upspins up containersalpha,zero,lambda,ratelas described indevCluster.ymldb stopstops all the containerdb downdeletes all containerdb down -vdeletes all container along with all volumes
Paste your schema inside
schema/schema.gql.Run
db-updateSchemato add mew schema to db ` .
- NOTE: If you run
db-updateSchemawithout adding your schema it will use defualt schema ,you can change it by repeating the steps mentioned before.
You can write your lambda code in typescript inside of
lambda/lambdas.tsCompile your into javascript by running
db-lambdaBuildwhen you restart your server using
db downand thendb upyour new lambda will used
- Write admin
queryormutationinside ofadmin/oprationsdirictiory, in a.gqlor.graphqlfile, Make sure you have named the query in the file like this.
mutation updateGQLSchema($sch: String!) {
updateGQLSchema(input: { set: { schema: $sch } }) {
gqlSchema {
schema
generatedSchema
}
}
}Make sure that your admin endpoint is live
Run
gen-gqlto genrate a typesafesdkthat contains all your queries and mutaions insideadmin/oprationsdirictioryyou can import the
sdkfromadmin/scripts/generatedTyps.tsimport
graphqlDgraphAdminRequestClientwhich is a graphql-request Clint for admin endpoint, AuthToken is already attached to header when usinggraphqlDgraphAdminRequestClient
You can use the sdk like this :
import { graphqlDgraphAdminRequestClient } from '../GQLDgraphAdminClient';
import { getSdk } from '`admin/scripts/generatedTyps';
const script =async () => {
const schema:string=`
type User {
id: ID
name: String
email: String @search(by: [hash])
emailVerified: DateTime
image: String
}
`
try {
const res = await getSdk(graphqlDgraphAdminRequestClient).updateGQLSchema({ sch: schema });
console.log('generatedSchema',res.updateGQLSchema);
} catch (error) {
console.error(error);
}
}
script()Contributing
Feel free to contribute to the dgraph-init by creating a PR
License
Dgraph-init is licensed under the MIT License.