Self-Service Actions
Self-service actions empower users to create and execute actions within the configure8 developer portal. These actions allow users to create new items, manage existing resources, or perform maintenance tasks. This documentation provides detailed instructions on how to create and enable self-service actions.
Set up and run your Self-Serve Actions by following these steps:
Here, you can also see a full example, including the back-end sample code.
Self-Serve Actions Benefits
Accelerate your time-to-market
Drive standardization and reuse
Improve your DevEx
Improve your DevOps/Platform team experience
Dramatic reductions in ticket volume
Lower total cost of ownership
Reduce maintenance overhead
Examples of Self-Serve Actions by job role:
Software engineering
Create an ad-hoc dev environment
Create a new service
Add a cloud resource
Upgrade package version
New feature flag
Add/change secret or environment variable
Re-run a data pipeline/job
Data engineering:
Change access to data
Set SLOs for a data pipeline
Start an ad-hoc job
Change job frequency
DevOps
Change pod replica counts
Change auto-scale group settings
Provision IOPS on a cloud database
Provision of a new cloud resource
Modify the settings of an existing cloud resource
Make cloud storage available in other regions
Add a database replica
Roll back a deployment
Resize a machine instance
Drain traffic from a region
Quality
Run performance tests
Create a new QA environment
Run your extended test suites
Create a new test
Disable broken/obsolete tests
Self-Service Action Types
Day 2: These actions are designed to manage existing resources or perform organizational maintenance tasks.
Create: Actions designed to create new resources.
Delete: Actions designed to delete resources.
Self-Service Action Methods
Webhook: This method allows users to invoke an action by sending an HTTP request to a specified URL. The incoming webhook request triggers the action.
How does it work?
A user acts on the Configure8 UI interface.
The user's inputs and relevant action metadata are bundled into a payload and sent to your infrastructure.
Upon receiving the payload, your infrastructure triggers a job associated with the action.
If an approval procedure needs to be performed, we leverage your existing approval process, blocking or releasing the workflow on the result.
The user receives continuous indications of the job's progress, allowing them to track the status of the action.
During the execution of the action, you can use the Configure8 API to update the status, provide information such as logs and timestamps, and ensure the durability of each step.
Steps to enable an action
Self-service actions are created within the Configure8 application for your organization. To enable an action, follow these steps:
Setup action
Specify the action's name, input type, URL, method, and user inputs to allow flexibility for individual actions.
Setup backend
Set up the logic responsible for handling the action upon form submission. The backend logic is customizable to suit your specific needs. As part of your backend implementation, you can keep the action's status up to date by sending API requests associated with the performed action.
Setup A Self-Service Action
Description
Details Section
In this section, provide a recognizable name, description, and type for the action. These details help users understand the purpose and functionality of the action.
Optional input for logos:
Context Section
The Context section allows you to control the execution of the action based on user access. You can define access restrictions and permissions to ensure the action is only available to authorized users. Currently limited to Admins only.
User Inputs Section
The User Inputs section lets you define optional parameters that can be used within the action. These inputs provide flexibility for various action scenarios, allowing users to customize the behavior of the action. User inputs can be required or optional.
You can find all available user inputs on the User Input Types page.
Method Section
In the Method section, you specify the backend method, HTTP method, URL, query parameters, headers, and payload for the action. This information determines how the action interacts with external systems or services.
Structure table
Action:
Field | Description | Notes |
---|---|---|
id | Auto generated. Unique identifier for action | |
Name | Required. Human-readable name for the action |
|
Type | Required. Dropdown with supported action types.
Options : | |
Logo | Required. Logo icon | |
Status | Required.
Options: | Draft actions cannot be run |
Description | Optional. Human-readable description for the action |
|
Owners | Required. Who owns this action (see RBAC) | User who is creating is the default owner |
Visibility control | Required. Dropdown with supported visibility control (see RBAC) | Default is the same as company level visibility control |
Viewers | Optional. Who can see the results of this action (see RBAC) | |
Allowed People | Optional. Who can run this action (see RBAC) | |
Applies to | Optional. Dropdown with items this actions applies to
Options : | |
User inputs* | Optional. Array of user inputs | In case of input is provided it is assumed as required. |
Method | Required. Dropdown with supported method types
Options : | Limited options currently available |
HTTP Method | Required. Dropdown with supported http methods
Options : | Limited options currently available |
Webhook URL | Required. URL to your backend and its logic implementation |
|
Query Parameters | Optional. Additional query parameters | Parameters assuming not to be changeable from different executions |
Headers | Optional. Additional header parameters |
|
Payload | Optional. Additional payload object |
|
You can find all available user inputs on the User Input Types page.
Action Restrictions:
Only Owners can create, update, or delete actions. Other user types can preview action configurations.
Actions in progress cannot be updated or deleted.
Users are not allowed to change the action method.
Placeholders
Predefined placeholders
We send a request to the provided URL with all the webhook-related data, including the additional key c8-report-token. You can include a token in the action payload using a placeholder {{c8ReportToken }}
. In this case, additional keys would be ignored.
Important: This is pre-defined place holders and behave only in this way
Example usage of token placeholder in action payload:
The token is valid for one day. After this period, if the action is not in the "Pending Approval", "Rejected", "Complete" or "Failed" status, the app marks it as "Terminated".
User input’s placeholders
This can be used if you need to structure your payload specifically. In payload, you can specify the structure that can be sent, and if you need to specify the value provided in user inputs, you can use the following pattern – {{ *make sure to use payloadName from user inputs* }}
Example usage of user inputs placeholder in action payload:
Payload should include “description” payloadName
Example:
Important: If you do not provide related payloadName in user inputs and use its payload, we will send a string instead of replacing the placeholder.
It can be replaced only once, so if you use it multiple times, it will be replaced only for the first match.
Run actions
Webhook type
Run Action
When an action is created, the blueprint is provided at the action level, and each user with an ADMIN role can execute(run) an action. Each action can have multiple executions, which can differ with user inputs or be a new execution.
To run an action of the webhook type, follow these steps:
Go to configure8 application and open self-service action in the top menu
In the "Actions" section, choose the action you want to execute and click on the "three dots" or press the action name icon.
Select "Run" from the popup menu.
Depending on the action and the user inputs required, fill in the action parameters (if provided).
Click the "Run" button to initiate the execution of the action.
What is happening in the background?
We create a default state for the current execution, setting it to the "In Progress" status and including additional information about the user and timestamp of execution.
If there is no response from the provided URL, the execution information is saved in our database. If an immediate response is received (within 10 seconds), the information is added to the status information. If the system responds with an error, the action is automatically set to "Failed".
An example of a valid response:
Diagram
Report
Report diagram.
Structure table.
Report:
Field | Description | Notes |
---|---|---|
status | Required. Action status
Options : | Actions not completed within one day are automatically terminated |
startedAt | Required. Timestamp when action started |
|
completedAt | Optional. Timestamp when action completed |
|
steps | Optional. Array of steps | *see additional information in next table |
Steps:
Field | Description | Notes |
---|---|---|
title | Required. Unique title name |
|
status | Required. Step status
Options : | |
startedAt | Required. Timestamp when step started |
|
completedAt | Optional. Timestamp when step completed |
|
logs | Optional. Array of string |
|
Updating progress status.
To update the progress status of an action, perform the following steps:
When you run the action, obtain the c8-report-token from the first request to your system and send a POST request with
c8-report-token: RECEIVED_TOKEN
in the header to the https://app.configure8.io/self-service/api/v1/reports/webhook endpoint.Include the c8-report-token to validate the request.
When you run the action, obtain the c8-report-token from the first request to your system.
Provide the desired updates for the main status and steps in the request body.
Ensure each step title is unique. Steps already in the "Complete" status do not need to be included in subsequent requests, as new incoming steps will be added based on the uniqueness of the step title.
Body example:
Please note that the title of each step should be unique. You don't need to send the same step with each request if it's already in the "Complete" status. New incoming steps will be added based on the uniqueness of the step title.
Security
Encryption Mechanisms for Sensitive Data
At Configure8, we prioritize the security and protection of your sensitive data. We employ robust encryption mechanisms to ensure your information's confidentiality and integrity. All sensitive data is encrypted.
When your data is stored within our systems, it is encrypted. This ensures that even in the unlikely event of unauthorized access to our storage infrastructure, your data remains secure and inaccessible without the proper decryption keys.
We continuously monitor and update our security measures to stay up-to-date with the latest industry practices and standards. By leveraging encryption mechanisms, we aim to provide a secure environment for your sensitive data within the Configure8 platform.
Data Privacy and Access Control
At Configure8, we prioritize data privacy and strictly enforce access controls to protect your action details. We understand the importance of maintaining the confidentiality of your organization's information and take the following measures to safeguard your data:
Access Restrictions: Customers from other organizations are strictly prohibited from reading, sharing, or managing the details of your actions. Our access control mechanisms ensure that each organization's data is isolated and accessible only to authorized users within the respective organization.
User Roles and Permissions: Configure8 employs a role-based access control (RBAC) system that allows organizations to define granular access permissions for their users. This ensures that only authorized personnel within your organization can access and manage the actions and associated information.
By implementing stringent access controls, user authentication mechanisms, and data segregation practices, Configure8 ensures that your action details are kept confidential and secure. We are committed to maintaining the privacy and security of your organization's data throughout our platform.
Last updated