Skip to main content

Domain models for Floweb Desktop - centralized Python models

Project description

Floweb Domain Models

A professional domain model package for Floweb Desktop, providing centralized type definitions and schemas for both frontend and backend applications.

Overview

This package contains JSON Schema definitions that serve as the single source of truth for all domain objects in the Floweb ecosystem. The schemas are used to generate type-safe interfaces for TypeScript and Pydantic models for Python, ensuring consistency across the entire application stack.

Features

  • Single Source of Truth: All domain models defined in JSON Schema
  • Type Safety: Auto-generated TypeScript interfaces and Python models
  • Cross-Language Consistency: Guaranteed compatibility between frontend and backend
  • Version Control: Semantic versioning for model changes
  • Documentation: Auto-generated documentation from schemas

Domain Models

Core Models

  • Flow: Complete automation flow definitions with actions, edges, and variables
  • Performance Test: Load testing configurations and results
  • Action Configurations: 40+ action types for automation workflows
  • Environment: Environment and global variable management

Key Components

  • Actions: Click, Input, Navigate, Wait, API calls, Database operations, etc.
  • Variables: Flow parameters, environment variables, global variables
  • Results: Execution results, performance metrics, test outcomes
  • Configuration: Authentication, thresholds, timing, and other settings

Usage

TypeScript

import { Flow, PerformanceTest, Environment } from '@floweb/domain-models';

// Type-safe usage
const flow: Flow = {
  id: 'flow-123',
  name: 'My Automation Flow',
  actions: [...],
  // ... fully typed
};

Python

from floweb_domain_models import Flow, PerformanceTest, Environment

# Pydantic models with validation
flow = Flow(
    id="flow-123",
    name="My Automation Flow",
    actions=[...]
)

Development

Schema Validation

All schemas are validated against JSON Schema Draft 2020-12 specification.

Push the changes and update the npm package version

npm version patch npm publish

Code Generation

  • TypeScript: Generated using json-schema-to-typescript
  • Python: Generated using datamodel-code-generator

Testing

Cross-language validation ensures generated models match schema expectations.

Schema Structure

domain-models/
├── schemas/           # JSON Schema definitions
│   ├── flow.json
│   ├── performance-test.json
│   ├── action-configs.json
│   └── environment.json
├── types/            # Generated type definitions
├── examples/         # Sample data files
└── docs/            # Generated documentation

Contributing

  1. Modify schemas in the schemas/ directory
  2. Run code generation scripts
  3. Update tests and examples
  4. Ensure cross-language compatibility

License

Copyright 2024 Floweb. All rights reserved.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

floweb_domain_models-1.0.13.tar.gz (19.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

floweb_domain_models-1.0.13-py3-none-any.whl (23.6 kB view details)

Uploaded Python 3

File details

Details for the file floweb_domain_models-1.0.13.tar.gz.

File metadata

  • Download URL: floweb_domain_models-1.0.13.tar.gz
  • Upload date:
  • Size: 19.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for floweb_domain_models-1.0.13.tar.gz
Algorithm Hash digest
SHA256 ab8a198d9ba98fd64a389e7a75234f605674e32a508dc9ea0c6a85ef659e1f5e
MD5 3285a734ea207b7223692f11a0d6b18c
BLAKE2b-256 1da3b84a37f18c4f9b743fd8c901dc72a21e83a27bb73ecd8f93e7a384ec8628

See more details on using hashes here.

File details

Details for the file floweb_domain_models-1.0.13-py3-none-any.whl.

File metadata

File hashes

Hashes for floweb_domain_models-1.0.13-py3-none-any.whl
Algorithm Hash digest
SHA256 3bd7dd2ed30e9241d1d488fb2da1d2b567fa43af26af3e733d7d94d8a509bb69
MD5 e4a7654adfb720ed3f40266e363bd7b6
BLAKE2b-256 ce6f4489cd067422c8819aca7167c6fd30a128e7ec0270fa8d85cd8e89a32f52

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page