Контекст
packages/nocodb/src/modules/jobs/jobs/at-import/engine/index.ts обращается к старому Airtable share endpoint:
// initialize() — строка 16 const url = https://airtable.com/${appId ? ${appId}/ : ''}${shareId}; return await axios.get(url, { headers: { 'User-Agent': '...', accept: '...' } });
// read() — строка 42 return await axios('https://airtable.com' + info.link, { headers: { 'User-Agent': '...', cookie, accept: '...' }, method: 'GET', responseType: 'stream', });
Airtable объявил https://airtable.com/<appId>/<shareId> устаревшим. Переходим на новый API endpoint.
Изменения API
- Базовый URL для share-инициализации:
https://airtable.com/<appId>/<shareId> → https://api.airtable.com/v1/shares/<appId>/<shareId>.
- URL в read:
https://airtable.com${info.link} → https://api.airtable.com/v1${info.link}.
- Добавить заголовок
X-Airtable-Api-Version: 2025-01-01 в обе axios-call.
Acceptance criteria
Контекст
packages/nocodb/src/modules/jobs/jobs/at-import/engine/index.tsобращается к старому Airtable share endpoint:Airtable объявил
https://airtable.com/<appId>/<shareId>устаревшим. Переходим на новый API endpoint.Изменения API
https://airtable.com/<appId>/<shareId>→https://api.airtable.com/v1/shares/<appId>/<shareId>.https://airtable.com${info.link}→https://api.airtable.com/v1${info.link}.X-Airtable-Api-Version: 2025-01-01в обе axios-call.Acceptance criteria
engine/index.tsначинаются с https://api.airtable.com/v1.'https://airtable.com'(безapi.) в этом файле удалены.X-Airtable-Api-Versionприсутствует в обеих axios-call.pnpm bootstrapпроходит без ошибок типизации.