Active Data Script
Scripting with batteries included!
ADS (Active Data Script) is a powerful, JavaScript language designed specifically for DevOps automation and infrastructure management. It is tailored to simplify the process of scripting and automating complex tasks, such as configuring servers, managing cloud resources, deploying applications, and orchestrating containers. ADS offers a familiar syntax for developers and DevOps engineers, making it easier to write scripts that integrate seamlessly with various DevOps tools and platforms. Its key features include built-in support for asynchronous operations, strong typing, and modular code organization, enabling teams to build scalable, maintainable automation scripts. With ADS, DevOps professionals can automate repetitive tasks, enforce infrastructure-as-code principles, and improve the efficiency and reliability of their continuous integration and deployment pipelines.
ADS is a fast, multiplatform solution that can be deployed either as a single binary or within a Docker image, making it highly versatile and easy to integrate into various environments. Its lightweight architecture ensures rapid execution, allowing it to handle complex DevOps tasks with minimal overhead. The single binary format means that ADS can be easily distributed and run on any platform without requiring additional dependencies, while the Docker image option provides a containerized environment for consistent deployments across different systems. This flexibility makes ADS an ideal choice for DevOps teams looking to streamline their automation processes, regardless of the underlying infrastructure. Whether running on a local machine, in the cloud, or within a CI/CD pipeline, ADS delivers the speed and portability needed to keep operations efficient and responsive.
ADS is poised to become a versatile tool by expanding its support to include additional languages like Go, Python, Tengo, and more. This future development will empower developers to leverage the strengths of multiple languages within a unified scripting environment, enhancing the flexibility and capability of ADS in DevOps workflows. By incorporating Go's efficiency, Python's readability, and Tengo's lightweight execution, ADS will cater to a broader range of use cases, from complex system automation to rapid prototyping. This multi-language support will position ADS as a comprehensive solution for diverse scripting needs, further solidifying its role in modern DevOps practices.
The future of Active Data Script envisions a no-code solution that will democratize access to powerful automation, data processing, and scripting capabilities. By introducing a user-friendly interface with drag-and-drop functionalities and pre-built templates, ADS will enable users with little to no coding experience to create and manage complex workflows. This no-code solution will empower business analysts, data scientists, and other non-developers to automate processes, integrate systems, and analyze data without writing a single line of code. By simplifying the creation and deployment of scripts, the no-code ADS platform will expand its accessibility, allowing organizations to accelerate innovation and improve efficiency across teams, while still harnessing the full power of ADS under the hood.
ADS is emerging as a powerful tool for data management and stream processing across various industries, not just in DevOps. With its intuitive, JavaScript syntax, ADS simplifies the creation and orchestration of complex data workflows, making it an excellent choice for tasks like real-time data analytics, ETL (Extract, Transform, Load) operations, and continuous stream processing. ADS can handle large-scale datasets and process data in real time, enabling organizations to quickly react to insights and trends as they emerge. Its versatility allows it to integrate seamlessly with different data sources and processing frameworks, making ADS a valuable asset in sectors such as finance, telecommunications, and e-commerce, where efficient data handling and real-time processing are critical to success.
Running ADS remotely using cloud runners significantly enhances its flexibility and scalability, making it a powerful tool for distributed computing tasks. By leveraging cloud runners, ADS scripts can be executed in diverse cloud environments, enabling seamless deployment, execution, and management of workloads without the need for local infrastructure. This capability allows for the efficient handling of large-scale operations, such as data processing, automation, and real-time analytics, across multiple cloud platforms. The remote execution also provides the ability to scale resources dynamically, optimize performance, and reduce latency, making ADS an ideal solution for organizations looking to leverage the power of the cloud for their scripting and automation needs.
Clone a repo, build and push docker image
function CheckError(err) {
if (err != undefined) {
throw(err)
}
}
// Remove the workspace that may exist from previous jobs
file.RemoveAll("./workspace")
// Clone a repo
log.Info("Running git git clone...")
err = git.Clone("https://gitlab.com/me/test.git", "main", "workspace")
CheckError(err)
// Build the docker image
log.Info("Running docker image build...")
err = docker.Image.Build("workspace", "Dockerfile", "me/my-image:latest")
CheckError(err)
// Login to docker
log.Info("Running docker login...")
CheckError(docker.Login("user", "password"))
// Push the docker image
log.Info("Running docker image push...")
err = docker.Image.Build("me/my-image:latest")
CheckError(err)
rescript myscript.js
This is a brief list of some of the built in modules.
Module | Features |
---|---|
Git | Clone, Push, Tag, Commits, Branch |
Gitlab | Group Variables, Project Variables, Run Pipeline, Releases, Tags, Commits, Deployments |
Github | Pull Requests, Commits, Deployments, Commits, Tags, Releases, Workflow Dispatch, Approve MR, Merge PR |
Docker | Image Build, Push, Tag, Container Start, Stop, Exec |
Vault | Get, Set Secret, Seal, Unseal |
Templating | Liquid and Golang Template Engines, Template to string, Template to file, Template directory |
Rest | JSON Get, Post |
Redis | Get, Set, Delete, Lpush, Rpush, Lpop, Rpop, BLpop, BRpop, Stream Publish, List Keys, Incr, Decr |
File | Read/Write JSON/YAML, Append to a file, Write to a file, list files / directories, remove file |
Exec | Run local commands |
Confluence | Get Page, Update Page |
Jira | |
Slack | |
Google Chat | |
Postgres | Create Table, Drop Table, Insert, Update, Select, Delete, RAW |
SQL | Postgres, Mysql, MariaDB, SQLite, MSSQL, Oracle, Create Table, Drop Table, Insert, Update, Select, Delete, RAW |
Gorm | Create Table, Drop Table, Insert, Update, Select, Delete, RAW |
Mongo | |
Crypto | |
S3 | Get, Put, Sync, List |