feat: implement database setup, logging, and workflow management

- Added database configuration and migration setup using Knex.
- Implemented a logging system with Pino, including log persistence and flushing.
- Created a server runner with Fastify, integrating authentication and various API routes.
- Introduced a script sandbox for executing user-defined scripts with restricted access.
- Established initial workflows and scripts for manual and cron triggers.
- Included documentation for API endpoints and workflows.
This commit is contained in:
2026-08-14 14:22:27 +07:00
parent a2f6bcad9c
commit 5574d6f723
18 changed files with 0 additions and 0 deletions
+4
View File
@@ -0,0 +1,4 @@
export default function main(context) {
log.info({ data: context.data }, "add-one");
return { data: (context.data || 0) + 1 };
}
+4
View File
@@ -0,0 +1,4 @@
export default function main(context) {
log.info({ input: context.input }, "add-ten");
return context.input + 10;
}
@@ -0,0 +1,10 @@
// this script will get current time
export default function getCurrentTime() {
return {
data: {
datetime: new Date().toISOString(),
processId: "1234"
}
}
}
+6
View File
@@ -0,0 +1,6 @@
import jsonata from "jsonata";
export default function jsonataFn(context) {
const expression = jsonata(context.config.expression);
return expression.evaluate(context.data)
}
+13
View File
@@ -0,0 +1,13 @@
export default async function ntfy(ctx) {
log.info({ ctx }, "ntfy");
const headers = {}
if(ctx.data?.title) {
headers.Title = ctx.data.title
}
await $axios.post(ctx.config?.url || "https://ntfy.sh/scrunner", ctx.data?.message || "Hello from scrunner", {
headers: headers
})
return {sent: "true"}
}