> ## Documentation Index
> Fetch the complete documentation index at: https://conductorone-docs-mcp-bridge-private-server.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Set up a Bookstack connector

> C1 provides identity governance for Bookstack. Integrate your Bookstack instance with C1 for unified visibility and governance over user access.

C1 provides identity governance for Bookstack. Integrate your Bookstack
instance with C1 for unified visibility and governance over who can access your
knowledge base and the roles they hold.

## Capabilities

| Resource | Sync                                                          | Provision |
| -------- | ------------------------------------------------------------- | --------- |
| Users    | <Icon icon="square-check" iconType="solid" color="#c937ae" /> |           |
| Roles    | <Icon icon="square-check" iconType="solid" color="#c937ae" /> |           |

The connector syncs Bookstack users and roles, and the role membership graph
that grants each user their roles.

## Gather Bookstack credentials

<Warning>
  The Bookstack user that owns the API token must hold both the **Access System
  API** and **Manage Users and Permissions / Roles** permissions. Without them,
  the connector cannot read users or roles and the sync fails.
</Warning>

Bookstack authenticates the REST API with a token pair: a public **Token ID**
and a secret **Token Secret**. C1 takes these as a single value, joined with a
colon.

<Steps>
  <Step>
    In Bookstack, sign in as a user that holds the **Access System API** and
    **Manage Users and Permissions / Roles** permissions.
  </Step>

  <Step>
    Open **Edit Profile** > **API Tokens** and click **Create Token**. Give it
    a name (and optionally an expiry date) and save.
  </Step>

  <Step>
    Bookstack shows the **Token ID** and **Token Secret** together once, at
    creation time. Copy both halves. You will not be able to see the secret
    again.
  </Step>

  <Step>
    Join the two halves with a single colon, in the order
    `TokenID:TokenSecret` — for example
    `aBcDeFgHiJkLmNoPqRsTuVwX:YzAxMjM0NTY3ODlhYmNkZWZnaGlqa2w`. This joined
    string is the value C1 needs.
  </Step>
</Steps>

## Configure the Bookstack connector

<Tabs>
  <Tab title="Cloud-hosted">
    Follow these instructions to use a built-in, no-code connector hosted by C1.

    <Steps>
      <Step>
        In C1, navigate to **Integrations** > **Connectors** and click **Add connector**.
      </Step>

      <Step>
        Search for **Bookstack** and click **Add**.
      </Step>

      <Step>
        Choose how to set up the new Bookstack connector.
      </Step>

      <Step>
        Set the owner for this connector.
      </Step>

      <Step>
        Click **Next**.
      </Step>

      <Step>
        Find the **Settings** area of the page and click **Edit**.
      </Step>

      <Step>
        Enter the Bookstack credentials:

        * **BookStack Base URL**: the origin of your Bookstack instance, with no
          trailing slash — for example `https://bookstack.example.com`.
        * **BookStack API Token**: the Token ID and Token Secret joined with a
          colon, as `TokenID:TokenSecret`.
      </Step>

      <Step>
        Click **Save**.
      </Step>

      <Step>
        The connector's label changes to **Syncing**, followed by **Connected**. You can view the logs to ensure that information is syncing.
      </Step>
    </Steps>

    **Done.** Your Bookstack connector is now pulling access data into C1.
  </Tab>

  <Tab title="Self-hosted">
    Follow these instructions to run the Bookstack connector in your own
    environment.

    <Steps>
      <Step>
        Create a secret for the joined Bookstack API token
        (`TokenID:TokenSecret`).
      </Step>

      <Step>
        Configure the connector environment variables:

        * **BATON\_BOOKSTACK\_BASE\_URL**: the origin of your Bookstack instance,
          with no trailing slash (`https://bookstack.example.com`).
        * **BATON\_BOOKSTACK\_API\_TOKEN**: the Token ID and Token Secret joined
          with a colon, as `TokenID:TokenSecret`.
      </Step>

      <Step>
        Deploy the connector using your standard self-hosted connector process.
      </Step>
    </Steps>

    **Done.** Your Bookstack connector is now pulling access data into C1.
  </Tab>
</Tabs>
