{children}
+ diff --git a/packages/engine/src/ui.html b/packages/engine/src/ui.html index c9655d9..dbbe060 100644 --- a/packages/engine/src/ui.html +++ b/packages/engine/src/ui.html @@ -4,7 +4,7 @@
Enter your API token to continue
++ This key will only be shown once. Copy it now and store it securely. +
+| ID | ++ Name + | ++ Role + | ++ Allowed Events + | ++ Rate Limit + | ++ Last Used + | ++ Created + | ++ |
|---|---|---|---|---|---|---|---|
| {key.id} | +{key.name} | ++ + {key.role || 'default'} + + | +
+
+ {key.allowed_events && key.allowed_events.length > 0 ? (
+ key.allowed_events.map((evt: string, j: number) => (
+
+ {evt}
+
+ ))
+ ) : (
+ all
+ )}
+
+ |
+ {key.rate_limit ?? '—'} | ++ {key.last_used_at ? formatRelativeTime(key.last_used_at) : '—'} + | +{formatRelativeTime(key.created_at)} | ++ + | +
{message}
+| + Name + | ++ Hash + | ++ Parent + | ++ Schema + | ++ Actions + | +
|---|---|---|---|---|
| {def.name} | +
+ |
+
+ {def.parent_hash ? |
+
+
+ {expanded.has(def.hash) && (
+
+ {JSON.stringify(def.schema, null, 2)
+ .split('\n')
+ .map((line, i) => {
+ if (line.includes(':')) {
+ const [key, ...rest] = line.split(':')
+ return (
+
+ )}
+ |
+ + + | +
| ID | ++ Type Hash + | ++ Created + | ++ Payload + | +
|---|---|---|---|
| {event.id} | +
+ |
+ {formatRelativeTime(event.created_at)} | +
+
+ {expanded.has(event.id) && (
+
+ {JSON.stringify(event.payload, null, 2)
+ .split('\n')
+ .map((line, i) => {
+ if (line.includes(':')) {
+ const [key, ...rest] = line.split(':')
+ return (
+
+ )}
+ |
+
| + Name + | +
|---|
| {def.name} | +
| ID | ++ Type + | ++ Created + | +
|---|---|---|
| {obj.id} | ++ + {obj.type} + + | +{formatRelativeTime(obj.created_at)} | +
{s.expression}
+
+ {JSON.stringify(def.params, null, 2)
+ .split('\n')
+ .map((line, i) => {
+ if (line.includes(':')) {
+ const [key, ...rest] = line.split(':')
+ return (
+
+ {key}:
+ {rest.join(':')}
+
+ )
+ }
+ return (
+
+ {line}
+
+ )
+ })}
+
+
+ {JSON.stringify(def.value_schema, null, 2)}
+
+
+ {JSON.stringify(def.initial_value, null, 2)}
+
+ {s.expression}
+
+ {JSON.stringify(result, null, 2)}
+
+ | + ID + | ++ Reaction + | ++ Trigger Event + | ++ Projection + | ++ Old Value + | ++ New Value + | ++ Action + | ++ Status + | ++ Output + | ++ Duration + | ++ Created + | +
|---|---|---|---|---|---|---|---|---|---|---|
| {log.id} | +{log.reaction_id} | +{log.trigger_event_id} | ++ {truncate(log.projection_def, 30)} + | ++ {truncate(log.old_value)} + | ++ {truncate(log.new_value)} + | ++ + {log.action} + + | +
+ |
+
+ {log.handler_output ? (
+
+
+ {expandedRows.has(log.id) && (
+
+ ) : (
+ —
+ )}
+
+ {typeof log.handler_output === 'string'
+ ? log.handler_output
+ : JSON.stringify(log.handler_output, null, 2)}
+
+ )}
+ |
+ + {log.duration_ms != null ? `${log.duration_ms}ms` : '—'} + | +{formatRelativeTime(log.created_at)} | +
| ID | ++ Projection Def + | ++ Params Hash + | ++ Action + | ++ Target + | ++ Created + | ++ |
|---|---|---|---|---|---|---|
| {reaction.id} | +
+ |
+
+ |
+ + + {reaction.action || 'webhook'} + + | +
+ {reaction.action === 'emit_event' ? (
+
+ → {reaction.emit_event_type}
+ {reaction.emit_payload_template && (
+
+ ) : (
+ {reaction.webhook_url}
+ )}
+
+ template:
+ )}
+ {reaction.emit_payload_template}
+ |
+ {formatRelativeTime(reaction.created_at)} | ++ + | +
| + ID + | ++ Method + | ++ Path + | ++ API Key + | ++ Status + | ++ Error + | ++ Duration + | ++ Created + | +
|---|---|---|---|---|---|---|---|
| {log.id} | +
+ |
+ {log.path} | +{log.api_key_name || '—'} | +
+ |
+ {log.error || '—'} | ++ {log.duration_ms != null ? `${log.duration_ms}ms` : '—'} + | +{formatRelativeTime(log.created_at)} | +