feat: enhance project structure with server and workflow management

- Introduced a new server package with Fastify for handling API requests and workflows.
- Implemented user authentication and authorization with JWT and cookie management.
- Added endpoints for managing workflows, runs, and user accounts.
- Established a dashboard for monitoring workflow status and statistics.
- Included a script sandbox for executing user-defined scripts securely.
- Updated README with setup instructions and API documentation.
- Configured database migrations for user management.
- Enhanced logging capabilities for better traceability.
This commit is contained in:
2026-08-14 14:25:37 +07:00
parent 5574d6f723
commit 023cf83cfa
48 changed files with 6127 additions and 359 deletions
+7 -3
View File
@@ -1,6 +1,10 @@
import jsonata from "jsonata";
export default function jsonataFn(context) {
const expression = jsonata(context.config.expression);
return expression.evaluate(context.data)
export default function jsonataFn(ctx) {
log.info({ctx}, "jsonata: context")
log.info("jsonata: evaluating expression %s", ctx.config.expression);
const expression = jsonata(ctx.config.expression);
const result = expression.evaluate(ctx.data);
log.info({result}, "jsonata: expression result");
return result;
}
+9 -2
View File
@@ -1,12 +1,19 @@
export default async function ntfy(ctx) {
log.info({ ctx }, "ntfy");
log.info({ ctx }, "ntfy incoming context");
const headers = {}
if(ctx.data?.title) {
log.info("ntfy: setting title %s", ctx.data.title);
headers.Title = ctx.data.title
}
await $axios.post(ctx.config?.url || "https://ntfy.sh/scrunner", ctx.data?.message || "Hello from scrunner", {
const ntfyUrl = ctx.config?.url || "https://ntfy.sh/scrunner";
log.info("ntfy sending message to %s", ntfyUrl);
const truncatedMessage = ctx.data?.message?.substring(0, 100);
log.info("ntfy messsage: %s", truncatedMessage);
await $axios.post(ntfyUrl, ctx.data?.message || "Hello from scrunner", {
headers: headers
})
return {sent: "true"}