API Module Definition and Functions
Schema Reference
Required Properties
Property
Type
Description
Complete Definition Structure
const { MyApi } = require('./api');
const Definition = {
// Required: API class
API: MyApi,
// Required: Module identifier
moduleName: 'my-module',
// Required: Function returning module name
getName: () => 'my-module',
// Required: Authentication methods
requiredAuthMethods: {
getToken: async (api, params) => { /* ... */ },
getEntityDetails: async (api, callbackParams, tokenResponse, userId) => { /* ... */ },
getCredentialDetails: async (api, userId) => { /* ... */ },
testAuthRequest: async (api) => { /* ... */ },
apiPropertiesToPersist: {
credential: ['access_token', 'refresh_token'],
entity: ['tenantId']
}
},
// Optional: Environment configuration
env: {
client_id: process.env.MY_CLIENT_ID,
client_secret: process.env.MY_CLIENT_SECRET,
scope: 'read write',
redirect_uri: process.env.MY_REDIRECT_URI,
base_url: process.env.MY_BASE_URL // Note: snake_case
},
// Optional: Module-level encryption for custom credential fields
encryption: {
credentialFields: ['api_key', 'webhook_secret']
}
};
module.exports = { Definition, MyApi };Required Auth Methods
getToken
getEntityDetails
getCredentialDetails
testAuthRequest
apiPropertiesToPersist
Environment Configuration
Encryption Configuration
Complete OAuth2 Example
Session-Based Auth Example
Validation
Best Practices
Related Documentation
Last updated
Was this helpful?
