Skip to content
This repository has been archived by the owner on Aug 4, 2024. It is now read-only.

A declarative language allowing for pseudo-deterministic JSON Document Generation.

Notifications You must be signed in to change notification settings

CodeFromAnywhere/ActionSchema

Repository files navigation

ActionSchema

I've moved away from this repo after I created a simpler version of this. I aim to open source it once it's matured. Please contact me if you want to know more.

ActionSchema intends to be a new standard allowing developers to create data-centric codebases. ActionSchema is a superset of JSON-Schema connecting meaning to how this meaning is obtained through OpenAPIs and code execution.

Motivation

  • It's hard and complex to build long chains on top of unreliable functions such as LLM's and other transformer AI, if you can't see what is happening in each part of the chain.
  • It's hard to work with OpenAPIs while the potential is giant.
  • Increased locality of behavior: keep your code where you describe your data and keep a SSOT. (See LoB Principle)

Installation & Usage

Installation differs depending on where you intend to use actionschema. ActionSchema can be ran on a server, on serverless, or directly from the browser!

Browser

Install:

npm install --save-exact actionschema

npm i idb

Usage:

import { executeBrowser } from "actionschema/browser";
executeBrowser(context);

Serverless

Install: npm install --save-exact actionschema

Usage:

import { executeServerless } from "actionschema/serverless";
executeServerless(context);

Server

Install:

npm install --save-exact actionschema

npm i piscina

Usage:

import { executeServer } from "actionschema/server";
executeServer(context);

Roadmap

⚠️ Rewrite in progress ⚠️

See ADR for more info on the choices made during this rewrite so far.

Goals of the rewrite:

  • Ability to add plugins everywhere (compatible with openapi and jsonschema architecture)
  • Storageless in-memory serverless execution
  • Improved variable evaluation: see relative-json-pointers
  • Introduction of actionschemas as an openapi extension (x-schema)

Compared to ActionSchema v1, this means it...

  • Removes layers of complexity: grid-frontend, user-authentication, and storage.
  • Is more suitable to be used in a scalable way
  • Becomes much more simple

After that these are high on the list:

  • Ability to run in browser, serverless, and server environments
  • Storage agnostic
  • Built-in load balancing
  • Built-in staleness detection
  • Built-in trusted code-execution
  • Built-in scheduling
  • Built-in migration support (moving data around)
  • Allows you to use it from VSCode
    • x-plugin selector
    • validator
    • in-data actions

Stay tuned for updates!

Contributing

Link to this package from actionschema-web or any other place you want to test this

  • run npm link here
  • run npm link actionschema in the package you want to link it to

About

A declarative language allowing for pseudo-deterministic JSON Document Generation.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published