Shared enum constants for the platform: workflow node types,
feature store, ticket system, TUI forms, and more.
Centralises all enumerated values so magic strings are defined
once. Each enum inherits StrEnum so values can be used directly
in SQL, comparisons, and f-strings without .value.
Ticket lifecycle states matching the data_ticket.Status column.
| Value | Description |
|---|---|
| NEW | Just created |
| TRIAGED | Reviewed and categorised |
| IN_PROGRESS | Being worked on |
| ON_HOLD | Paused |
| ESCALATED | Escalated to higher tier |
| RESOLVED | Fix applied |
| CLOSED | Completed |
| CANCELLED | Abandoned |
Priority levels matching data_ticket.Priority and def_ticket_sla.Priority.
| Value | Description |
|---|---|
| CRITICAL | Immediate attention |
| HIGH | Urgent |
| MEDIUM | Normal (default) |
| LOW | Low urgency |
| INFO | Informational only |
Ticket category matching data_ticket.TicketType.
| Value | Description |
|---|---|
| USER | End-user request |
| INTERNAL | Internal task |
| BUG | Defect report |
| FEATURE | Feature request |
Audit trail actions written to track_ticket.Action.
| Value | Description |
|---|---|
| CREATED | Ticket created |
| ASSIGNED | Assigned to user |
| STATUS_CHANGE | Status transition |
| ANALYSIS | Problem analysis added |
| WORK_SCORE | Work score set |
| RESOLVED | Ticket resolved |
| CLOSED | Ticket closed |
| ESCALATED | Ticket escalated |
| TASK_ADDED | Sub-task added |
| COMMENT_ADDED | Comment added |
| LINKED | Ticket linked |
Notification codes for ticket events sent via ObjNotify.
| Value | Description |
|---|---|
| TICKET_CREATED | Fired when a ticket is created |
| TICKET_UPDATED | Fired when a ticket is updated |
Type of user who raised the ticket.
| Value | Description |
|---|---|
| INTERNAL | Platform user from sys_user |
| External party identified by email | |
| SYSTEM | Linux/system user |
Link types between tickets for data_ticket_link.LinkType.
| Value | Description |
|---|---|
| BLOCKS | Source blocks target |
| RELATED | Related tickets |
| DUPLICATE | Duplicate of another |
| CHILD | Child/sub-ticket |
Task lifecycle states matching data_ticket_task.Status.
| Value | Description |
|---|---|
| PENDING | Not started |
| IN_PROGRESS | Being worked on |
| DONE | Completed |
| CANCELLED | Abandoned |
SLA compliance flag (Y/N).
Basic TUI input types for form rendering in ObjTuiForm.
| Value | Rendering |
|---|---|
| STRING | Prompt.ask() single-line |
| TEXT | Prompt.ask() single-line |
| NUMBER | Prompt.ask() with int validation |
| DATETIME | Prompt.ask() with format hint |
| SELECT | questionary.select() |
| BOOLEAN | Confirm.ask() yes/no |
| DISPLAY | Readonly display only |
Form layout types for def_form.FormType.
Generic Y/N flag used for Required, Readonly, Hidden, Active fields.
Backend identifier used by ObjDataTransfer and related modules when
routing connections, building SQL, and selecting upsert strategies.
Inherits StrEnum so values compare directly with strings.
| Value | Description |
|---|---|
MARIADB |
MariaDB / MySQL (local docker or remote) |
MSSQL |
Microsoft SQL Server |
SQLITE |
SQLite file-based database |
MONGO |
MongoDB |
YAML |
YAML file used as a flat record store |
POSTGRES |
PostgreSQL — also used for Neon (cloud Postgres) |
REDIS |
Redis — also used for Upstash (cloud Redis) |
TURSO |
Turso libSQL (SQLite-compatible, remote) |
INFLUXDB |
InfluxDB — local or cloud (InfluxDB Cloud) |
ODBC |
Any ODBC data source via pyodbc (e.g. psqlODBC → Neon) |
| Method | Returns True for |
|---|---|
is_sql_database(t) |
MARIADB, MSSQL, SQLITE, POSTGRES, TURSO, ODBC |
is_nosql_database(t) |
MONGO, YAML, REDIS |
is_file_based(t) |
SQLITE, YAML |
is_timeseries(t) |
INFLUXDB |
is_keyvalue(t) |
REDIS |
ObjDataTransfer_tq_detect_type(connection_str) maps connection strings to a
DatabaseType value. The returned type controls quoting, placeholders,
upsert strategy, and table creation in all other _tq_* helpers.
from ObjEnum import DatabaseType
db_type = DatabaseType.POSTGRES
if DatabaseType.is_sql_database(db_type):
quote = '"' # double-quote identifiers
from ObjEnum import TicketStatus, TicketPriority
if ticket._Status == TicketStatus.NEW:
...
ticket.Create(
subject="Fix login",
priority=TicketPriority.HIGH,
)
The ObjEnum module has comprehensive test coverage across 197 automated tests validating all enumeration types.
| Test Suite | Tests | Type | Purpose |
|---|---|---|---|
test_ObjEnum.py |
48 | Unit | Ticket/task/SLA/form enumerations, SQL usage validation |
test_ObjEnum_filetypes.py |
149 | Unit | File type enumerations, type group membership, enum member validation |
| Total | 197 |
Ticket System (35 tests):
File Types (149 tests):
Form System (13 tests):
# Run all ObjEnum tests
pytest resource.test/pytests/factory.core/test_ObjEnum*.py -v
# Run specific test suite
pytest resource.test/pytests/factory.core/test_ObjEnum_filetypes.py -v
pytest resource.test/pytests/factory.core/test_ObjEnum.py -v
# Run tests for specific enum
pytest resource.test/pytests/factory.core/test_ObjEnum.py::TestTicketStatus -v
Workflow DAG node types registered via ObjNodeRegistry.
| Value | Description |
|---|---|
| SCHEDULER | Start timer event |
| CALC | Execute calculations |
| SERVICE | Run a service class |
| API | Invoke an API |
| Stage email to channel queue | |
| SENDMAIL | Direct SMTP email delivery |
| SMS | Send SMS message |
| NOTIFY | Send notification |
| FEATURESTORE | Compute feature store tables |
| FEATURERENDER | Render feature templates |
| AI | Invoke an AI model |
| WEBHOOK | Trigger webhook |
| DECISION | Process decision table |
| SCORECARD | Compute scorecard |
| DONE | End node |
Feature computation types for ObjFeatureStore.
| Value | Description |
|---|---|
| DIRECT_MAP | Map source column directly |
| SQL_CASE | SQL CASE expression |
| SQL_VALUE | Scalar SQL query |
| AGGREGATE | Aggregate function |
| WINDOW | Window function |
| JSON_EXTRACT | Extract from JSON column |
| SYMBOLIC | Reference other features |
| BETWEEN | Range bucketing |
ObjWorkflow.py - Uses WorkflowNodeTypeObjFeatureStore.py - Uses FeatureTypeEnumObjTicket.py - Ticket lifecycleObjTicketTask.py - Task managementObjTicketSla.py - SLA configurationObjTicketComment.py - Comment managementObjTicketLink.py - Link managementObjTuiForm.py - TUI form renderingObjDataTransfer.py - Uses DatabaseType