| const mongoose = require('mongoose'); |
|
|
| const { Schema } = mongoose; |
|
|
| const AuthSchema = new Schema( |
| { |
| authorization_type: String, |
| custom_auth_header: String, |
| type: { |
| type: String, |
| enum: ['service_http', 'oauth', 'none'], |
| }, |
| authorization_content_type: String, |
| authorization_url: String, |
| client_url: String, |
| scope: String, |
| token_exchange_method: { |
| type: String, |
| enum: ['default_post', 'basic_auth_header', null], |
| }, |
| }, |
| { _id: false }, |
| ); |
|
|
| const actionSchema = new Schema({ |
| user: { |
| type: mongoose.Schema.Types.ObjectId, |
| ref: 'User', |
| index: true, |
| required: true, |
| }, |
| action_id: { |
| type: String, |
| index: true, |
| required: true, |
| }, |
| type: { |
| type: String, |
| default: 'action_prototype', |
| }, |
| settings: Schema.Types.Mixed, |
| assistant_id: String, |
| metadata: { |
| api_key: String, |
| auth: AuthSchema, |
| domain: { |
| type: String, |
| required: true, |
| }, |
| |
| privacy_policy_url: String, |
| raw_spec: String, |
| oauth_client_id: String, |
| oauth_client_secret: String, |
| }, |
| }); |
| |
|
|
| module.exports = actionSchema; |
|
|