action rudder_get_all_data_sources { label: "List all data sources" description: "Get the configuration of all present data sources" provider: rudder method: GET path: "/datasources" encoding: json output: { type: "object" required: ["action", "data", "result"] properties: { action: { type: "string" description: "The id of the action" enum: ["getAllDataSources"] } data: { type: "object" required: ["datasources"] properties: { datasources: { type: "array" items: { type: "object" properties: { description: { type: "string" description: "Description of the goal of the data source to create." } enabled: { type: "boolean" description: "Enable or disable data source." } id: { type: "string" description: "Unique identifier of the data source to create." } name: { type: "string" description: "The human readable name of the data source to create." } runParameters: { type: "object" description: "Parameters to configure when the data source is fetched to update node properties." properties: { onGeneration: { type: "boolean" description: "Trigger a fetch at the beginning of a policy generation" } onNewNode: { type: "boolean" description: "Trigger a fetch when a new node is accepted, for that node" } schedule: { type: "object" description: "Configure if data source should be fetch periodically" properties: { type: { type: "string" description: "`scheduled` enables periodic update, `notscheduled` disables them" enum: ["scheduled", "notscheduled"] } } } } } type: { type: "object" description: "Define and configure data source type." properties: { name: { type: "string" description: "Data source type name" enum: ["HTTP"] } parameters: { type: "object" description: "You can use Rudder variable expansion (`${rudder.node`, `${node.properties...}`)" properties: { checkSsl: { type: "boolean" description: "Check SSL certificate validity for https. Must be set to false for self-signed certificate" } headers: { type: "array" description: "Represent HTTP headers for the query. Rudder expansion available." items: { type: "object" properties: { name: { type: "object" additionalProperties: true } value: { type: "object" additionalProperties: true } } } } path: { type: "string" description: "JSON path (as defined in [the specification](https://github.com/jayway/JsonPath/), without the leading `$.`) to find the interesting sub-json or string/number/boolean value in the answer. Let empty to use the whole answer as value." } requestMethod: { type: "string" description: "HTTP method to use to contact the URL." enum: ["GET", "POST"] } requestMode: { type: "object" description: "Configure the strategy used to query the HTTP data source." properties: { name: { type: "string" description: "Node by node strategy" enum: ["byNode"] } } } requestTimeout: { type: "integer" description: "Timeout in seconds for each HTTP request" } url: { type: "string" description: "URL to contact. Rudder expansion available." } } } } } updateTimeout: { type: "integer" description: "Duration in seconds before aborting data source update. The main goal is to prevent never ending requests. If a periodicity if configured, you should set that timeout at a lower value." } } } } } } result: { type: "string" description: "Result of the request" enum: ["success", "error"] } } } }