Skip to content

Settings and tools reference

The config file keys that shape governance, and every tool the two connectors give Claude and ChatGPT.

The gateway reads portward.toml (on AWS, the stack’s parameters write it; on Google Cloud, your Terraform settings do). Restart the gateway after a change. What an admin adds in the console comes on top of the config file and can’t remove what the file lists.

[auth], with sign-in through your directory

Section titled “[auth], with sign-in through your directory”
KeyWhat it doesDefault
directoryYour directory’s https sign-in address (its OpenID Connect issuer)Required
client_idThe app registered for this gateway in your directoryRequired
client_secret_envThe environment variable that holds the app’s secretPORTWARD_DIRECTORY_SECRET
admin_groupsGroups whose members are admins, as the directory sends themNone
admin_subjectsAdmins by sign-in id or verified emailNone
user_groupsGroups whose members may use the data connectorNone
usersOther data users: sign-in ids, verified emails or "@yourcompany.com". [] means admins and user groups only. Without the line, everyone the directory signs in.No line
groups_claimThe sign-in token claim that holds the groupsgroups
scopesExtra sign-in scopes, such as ["groups"] for OktaNone
subject_claimWhat logs and records show as whosub
step_upAsk for a fresh sign-in before changes that give more accesstrue
redirect_urisExact https return addresses of apps besides Claude, ChatGPT and local onesNone

With WorkOS or another provider that issues its own tokens, [auth] takes issuer, jwks_url, audience, roles_claim and admin_roles instead of directory, client_id and the group keys (Sign-in setup).

KeyWhat it doesDefault
public_urlThe gateway’s address
setup_hostsDatabase hosts setup may connect to; "*.corp.example" covers a domainNone
min_group_sizeSmallest group a Totals only column is summed or averaged over (2 at least)5
max_rowsMost rows one answer returns200
timeout_msQuery time limit for databases, files and apps5000
warehouse_timeout_msQuery time limit for warehouses60000
records_pathThe records file, next to the config fileportward.db
KeyWhat it does
kindsThe kinds of source setup may connect, such as ["postgres", "snowflake"]. Without it, every kind.
[setup.sign_in.<kind>]For sources people connect by signing in (Microsoft 365, Google Drive): client_id_env, optional client_secret_env, and for Microsoft tenant

Sources can also be defined in the config file, with rules per column:

[sources.tables.customers.columns.email]
ai = "token" # "token" (the default for a listed column), "aggregate" or "plain"
person = "reveal" # "plain", "reveal", "mask" or "hidden"; only for a token column
prefix = "EMAIL" # the token type
share = true # people may send it to the AI

person = "reveal" is Click to show, and ai = "aggregate" is Totals only. A column the config file tokenizes stays a token: setup and the console can’t make it a real value.

At https://<your gateway>/mcp, for everyone who asks questions. Each person sees only the datasets they may use.

ToolWhat it does
list_datasetsThe datasets, columns, token columns, definitions and links the person may query
describeOne dataset: its columns, definitions and a few sample rows, with token columns as tokens. Makes an answer record.
queryRuns one read-only SELECT with the AI’s stated assumptions, shows the results table and makes an answer record
suggest_linksRanks columns in other sources that likely match one of this dataset, by shared values (counts only), and shows the person a picker
save_linkSaves the match the person chose in chat

At https://<your gateway>/admin/mcp, for admins only. These tools return metadata, never data values. The ones that change something show a card a person approves.

ToolWhat it does
setupOpens the setup widget: sources, access rules and context. Can open prefilled for a kind of source.
propose_accessProposes changes to exposure and column rules as a review card
context_templateA dataset’s columns and the context template, with any saved context
draft_contextShows a context draft, checked against the data, for a person to edit and save
governanceOpens the governance view: links to confirm, definitions to settle, recent activity
review_queueColumns whose definition is missing or a draft, most used first
assumptionsRecent assumptions the AI made when answering
draft_definitionSaves a draft definition. Never confirms one.
confirm_definitionProposes a definition as a review card
linksLinks between sources, who chose each and its state
confirm_linkProposes confirming a link as a review card
access_summaryPer column: queries, people and reveals
reveal_logWho revealed, shared or matched which column, and when. Never the values.
setup_logWho changed setup, and when
evidenceThe evidence pack for one answer record, or the last one, with a download