import {
patSetupUrl,
oauthConnectUrl,
DEFAULT_OAUTH_SCOPES,
AIRTABLE_CALLBACK_URL,
AIRTABLE_REQUIRED_HOST,
AIRTABLE_SCOPES,
} from './setup.ts'
/**
* Describe the Airtable package, auth lanes, and export surface.
* @example
* import airtable from 'kody:@kody/airtable'
* const overview = await airtable()
*/
export default async function airtableOverview() {
return {
name: 'Airtable',
auth: {
oauth: {
defaultIntegration: 'airtable',
connectUrl: oauthConnectUrl('airtable'),
callbackUrl: AIRTABLE_CALLBACK_URL,
scopes: AIRTABLE_SCOPES,
defaultScopes: [...DEFAULT_OAUTH_SCOPES],
scopeSeparator: ' ',
requiredHost: AIRTABLE_REQUIRED_HOST,
},
pat: {
defaultSecret: 'airtablePat',
setupUrl: patSetupUrl('airtablePat'),
requiredHost: AIRTABLE_REQUIRED_HOST,
},
},
safety: 'Mutating operations require confirm: true and support dryRun: true.',
exports: {
setup: ['accounts', 'smoke-test', 'viewer'],
bases: ['list-bases', 'get-base'],
tables: ['list-tables', 'get-table'],
records: ['list-records', 'get-record', 'create-record', 'update-record', 'delete-record'],
comments: ['list-comments', 'create-comment'],
advanced: ['request'],
},
}
}