Skip to content

Schema

Fleek's API GraphQL Schema

We will be exposing a GraphQL Playground in the near future, but in the meantime, here is an excerpt of the schema and available queries and mutation:

type Query {
    getSiteById(siteId: ID!): Site
  getSiteBySlug(slug: String!): Site

    """ Query paginated list of deploys performed on a site """
  getDeploysBySite(siteId: ID!, limit: Int, nextToken: String): DeployConnection

    """ Query a paginated list of sites in the team """
    getSitesByTeam(teamId: ID!, limit: Int, nextToken: String): SiteConnection

}

type Mutation {
  """
    Trigger a deploy on the site
    """
  triggerDeploy(siteId: ID!, commit: String): Deploy
    """
    Retry a previous deployment
    """
  retryDeploy(siteId: ID!, deployId: ID!): Deploy
}

type SiteConnection {
  sites: [Site!]!
  nextToken: String
}

type Site {
  id: ID!
  createdBy: ID!
  createdAt: DateTime!
  updatedAt: DateTime

  teamId: ID!
  team: Team!
  name: String!
  description: String
  # same as name
  slug: String!
  platform: SitePlatform

  buildSettings: BuildSettings!
  deploySettings: DeploySettings!
  """ Last deploy that was/is currently published as the site """
  publishedDeploy: Deploy
  """ Last deployment trigger for the site """
  latestDeploy: Deploy
  dfinityCanisterId: String
}

enum RepositoryType {
  GITHUB
}

""" Platform a site is configured to be deployed to. """
enum SitePlatform {
  ipfs
  dfinity
}

type Repository {
  type: RepositoryType!
  url: String!
  branch: String!
}

type IpfsSource {
  cid: String
}

union SiteSource = Repository | IpfsSource

type DeploySettings {
  autoPublishing: Boolean!
  prDeployPreviews: Boolean!
  dfinityUseProxy: Boolean
  source: SiteSource!
}

type EnvironmentVariable {
  name: String!
  value: String
}

type BuildSettings {
  buildCommand: String
  baseDirectoryPath: String
  publishDirectoryPath: String
  dockerImage: String

  "Defaults to [] if empty"
  environmentVariables: [EnvironmentVariable!]!
}

type Team {
  id: ID!
  name: String!
}

type DeployRepository {
  commit: String
  branch: String
  owner: String
  name: String
  message: String
}

type DeployConnection {
  deploys: [Deploy!]!
  nextToken: String
}

type Deploy {
  id: ID!
  startedAt: DateTime
  completedAt: DateTime
  status: DeployStatus!
  ipfsHash: String
  """ url to preview image after a successful deploy """
  previewImage: String
  """ total duration all steps in ms """
  totalTime: Int
  log: String
  published: Boolean!
  """ copy of repository at the time of deploy """
  repository: DeployRepository!
  autoPublish: Boolean!
}

enum DeployStatus {
  IN_PROGRESS
  DEPLOYED
  FAILED
  CANCELLED
}