snowballtools-base/packages/backend/src/schema.gql

134 lines
2.2 KiB
Plaintext
Raw Normal View History

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!
organization: Organization!
}
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!]
environmentVariables(projectId: String!): [EnvironmentVariable!]
projectMembers(projectId: String!): [ProjectMember!]
searchProjects(searchText: String!): [Project!]
}
type Mutation {
removeMember(memberId: String!): Boolean!
addEnvironmentVariables(projectId: String!, environmentVariables: [AddEnvironmentVariableInput!]): Boolean!
}
input AddEnvironmentVariableInput {
environments: [Environment!]!
key: String!
value: String!
}