version: 1
name: iOffice
slug: ioffice
summary: >-
  iOffice workspace and facility management for Claude — book rooms, manage
  visitors, file maintenance requests, and more via natural language
env:
  - name: IOFFICE_HOST
    required: true
    help: >-
      Your iOffice tenant hostname (e.g. yourcompany.ioffice.com)
  - name: IOFFICE_TOKEN
    secret: true
    required: false
    help: >-
      Your iOffice API token (preferred over username/password)
  - name: IOFFICE_USERNAME
    required: false
    help: >-
      Your iOffice username (used if no API token)
  - name: IOFFICE_PASSWORD
    secret: true
    required: false
    help: >-
      Your iOffice password (used if no API token)
egress:
  allow:
    # Only hosts the SERVER process actually fetches; hosts that appear solely
    # in a URL this server builds and returns are excluded. Matching is EXACT:
    # an apex entry covers no subdomain, and `*.` covers labels beneath it but
    # not the apex — which is why the wildcard below is a wildcard.
    #
    # The ONE host this process dials is IOFFICE_HOST — every tool call goes to
    # https://$IOFFICE_HOST/external/api/rest/v2 (src/client.ts), with no login
    # hop and no redirect (the API answers 401 in place). iOffice/Eptura is
    # multi-tenant per customer on <tenant>.iofficeconnect.com, so the tenant
    # label genuinely varies and the wildcard stands in for it. Narrow it to
    # YOUR tenant's host if you prefer. An IOFFICE_HOST outside
    # iofficeconnect.com (the older <tenant>.ioffice.com form in the docs no
    # longer resolves) is env-selected and must be added here by hand.
    - "*.iofficeconnect.com"
