n8n-bookstack-agent-tool
Version:
Comprehensive BookStack API integration tool for n8n AI Agent with MCP framework compatibility
93 lines • 3.49 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.N8nConfigGenerator = void 0;
class N8nConfigGenerator {
static generateBookStackConfig() {
return [
{
displayName: 'BookStack Base URL',
name: 'baseUrl',
type: 'string',
required: true,
placeholder: 'https://your-bookstack.example.com',
description: 'The base URL of your BookStack instance (without trailing slash)'
},
{
displayName: 'Authentication Method',
name: 'authType',
type: 'options',
required: true,
default: 'bearer',
options: [
{
name: 'Bearer Token',
value: 'bearer'
},
{
name: 'Session Cookie',
value: 'session'
}
],
description: 'Choose the authentication method to use with BookStack API'
},
{
displayName: 'API Token',
name: 'token',
type: 'string',
required: true,
placeholder: 'your-api-token-here',
description: 'Your BookStack API token (visible when authType is "bearer")'
},
{
displayName: 'Session Cookie',
name: 'sessionCookie',
type: 'string',
required: false,
placeholder: 'bookstack_session=...',
description: 'Your BookStack session cookie (visible when authType is "session")'
},
{
displayName: 'Request Timeout (ms)',
name: 'timeout',
type: 'number',
default: 30000,
required: false,
description: 'Timeout for API requests in milliseconds (1000-300000)'
},
{
displayName: 'Retry Attempts',
name: 'retryAttempts',
type: 'number',
default: 3,
required: false,
description: 'Number of retry attempts for failed requests (0-10)'
},
{
displayName: 'Retry Delay (ms)',
name: 'retryDelay',
type: 'number',
default: 1000,
required: false,
description: 'Delay between retry attempts in milliseconds (100-10000)'
}
];
}
static generateConfigSchema() {
const config = this.generateBookStackConfig();
return {
type: 'object',
properties: config.reduce((acc, field) => {
acc[field.name] = {
type: field.type === 'options' ? 'string' : field.type,
description: field.description,
...(field.default !== undefined && { default: field.default }),
...(field.options && { enum: field.options.map(opt => opt.value) })
};
return acc;
}, {}),
required: config.filter(field => field.required).map(field => field.name)
};
}
}
exports.N8nConfigGenerator = N8nConfigGenerator;
//# sourceMappingURL=gui-config.js.map