snowballtools-base/packages/backend/src/schema.gql
prathamesh0 4d00cfb8f0 Add graphql schema (#18)
* Add graphql schema

* Remove circular references in gql schema

* Remove unnecessary todos

---------

Co-authored-by: neeraj <neeraj.rtly@gmail.com>
2024-02-01 11:37:57 +05:30

119 lines
1.7 KiB
GraphQL

enum Role {
Owner
Maintainer
Reader
}
enum Permission {
View
Edit
}
enum Environment {
Production
Preview
Development
}
enum DeploymentStatus {
Building
Ready
Error
}
enum DomainStatus {
Live
Pending
}
type User {
id: String!
name: String!
email: String!
organizations: [Organization!]
projects: [Project!]
createdAt: String!
updatedAt: String!
}
type Organization {
id: String!
name: String!
projects: [Project!]
createdAt: String!
updatedAt: String!
members: [OrganizationMember!]
}
type OrganizationMember {
id: String!
member: User!
role: Role!
createdAt: String!
updatedAt: String!
}
type Project {
id: String!
owner: User!
deployments: [Deployment!]
name: String!
repository: String!
prodBranch: String!
description: String
template: String
framework: String!
webhooks: [String!]
members: [ProjectMember!]
environmentVariables: [EnvironmentVariable!]
createdAt: String!
updatedAt: String!
}
type ProjectMember {
id: String!
member: User!
permissions: [Permission!]!
createdAt: String!
updatedAt: String!
}
type Deployment {
id: String!
domain: Domain
branch: String!
commitHash: String!
title: String!
environment: Environment!
isCurrent: Boolean!
status: DeploymentStatus!
createdAt: String!
updatedAt: String!
}
type Domain {
id: String!
branch: String!
name: String!
isRedirected: Boolean!
status: DomainStatus!
createdAt: String!
updatedAt: String!
}
type EnvironmentVariable {
id: String!
environments: [Environment!]!
key: String!
value: String!
createdAt: String!
updatedAt: String!
}
type Query {
user: User!
organizations: [Organization!]
projects: [Project!]
deployments(projectId: String!): [Deployment!]
}