Contract Management via the GraphQL API
The contracts of a target can be managed via the Hive Console GraphQL API. For more information, please refer to our schema contracts documentation.
Retrieve a list of all Contracts in Target
Use the Target.contracts field for retrieving a list of all contracts within the target.
query ContractTargets($targetId: ID!) {
  target(reference: { byId: $targetId }) {
    id
    contracts {
      edges {
        node {
          id
          contractName
          includeTags
          excludeTags
          removeUnreachableTypesFromPublicApiSchema
          isDisabled
        }
      }
      pageInfo {
        hasNextPage
        endCursor
      }
    }
  }
}Retrieve a list of all Active Contracts in Target
Use the Target.activeContracts field for retrieving a list of all contracts within the target.
query ActiveContractTargets($targetId: ID!) {
  target(reference: { byId: $targetId }) {
    id
    activeContracts {
      edges {
        node {
          id
          contractName
          includeTags
          excludeTags
          removeUnreachableTypesFromPublicApiSchema
          isDisabled
        }
      }
      pageInfo {
        hasNextPage
        endCursor
      }
    }
  }
}Create a Contract
Use the Mutation.createContract field for creating a new contract.
mutation CreateContract($input: CreateContractInput!) {
  createContract(input: $input) {
    ok {
      createdContract {
        id
        contractName
        includeTags
        excludeTags
        removeUnreachableTypesFromPublicApiSchema
        isDisabled
      }
    }
    error {
      message
      details {
        target
        contractName
        includeTags
        excludeTags
      }
    }
  }
}Disable a Contract
Use the Mutation.disableContract field for disabling a contract. Note: A disabled contract
cannot be made active again.
mutation DisableContract($input: DisableContractInput!) {
  disableContract(input: $input) {
    ok {
      disabledContract {
        id
        contractName
        includeTags
        excludeTags
        removeUnreachableTypesFromPublicApiSchema
        isDisabled
      }
    }
    error {
      message
    }
  }
}Delete a Contract
This is not possible. Instead, disable the contract.
Last updated on