Documentation Index
Fetch the complete documentation index at: https://docs.fusioncat.dev/llms.txt
Use this file to discover all available pages before exploring further.
Fusioncat is currently in its alpha stage. The main API server is located at:
https://api.staging.fusioncatalyst.io/Please note that breaking changes and bugs are to be expected, as the product is still under active development.
App Management Commands
The paw apps commands allow you to create and manage applications within your Fusioncat projects.
Commands
apps list
List all applications in a project.
paw apps list --project-id <id>
Options
--project-id (required): The ID of the project
Examples
# List all apps in a project
paw apps list --project-id "project-uuid"
apps new
Create a new application.
paw apps new --project-id <id> --name <name> [--description <description>]
Options
--project-id (required): The ID of the project
--name (required): Name of the application
--description: Description of the application
Examples
# Create a simple app
paw apps new --project-id "project-uuid" --name "Web Frontend"
# Create an app with description
paw apps new --project-id "project-uuid" --name "Mobile App" --description "React Native mobile application"
Understanding Applications
What is an App?
In Fusioncat, an app represents a consumer or producer of your API definitions. Apps can be:
- Frontend applications (web, mobile)
- Backend services
- Microservices
- Third-party integrations
App Configuration
Each app can:
- Generate code in different languages
- Have its own configuration
- Use specific schema versions
- Define custom mappings
App Types
While the CLI doesn’t enforce app types, common patterns include:
-
Consumer Apps: Use schemas to consume data
- Web frontends
- Mobile applications
- CLI tools
-
Producer Apps: Generate data conforming to schemas
- API servers
- Event producers
- Data pipelines
-
Full-Stack Apps: Both produce and consume
- Microservices
- API gateways
- Backend-for-frontend (BFF) services
Code Generation
After creating an app, you can generate code for it:
# Generate TypeScript code
paw codegen app --app-id "app-uuid" --language typescript
# Generate Python code
paw codegen app --app-id "app-uuid" --language python
See Code Generation for more details.
Best Practices
Naming Apps
- Use descriptive names that indicate the app’s purpose
- Include the platform/technology if relevant
- Examples: “React Web App”, “iOS Mobile App”, “Order Processing Service”
App Organization
- One app per deployable unit: Each microservice, frontend, or mobile app should be separate
- Shared schemas: Apps in the same project share schema definitions
- Version independence: Each app can use different schema versions
Development Workflow
- Create project and schemas
- Create app for your implementation
- Generate initial code
- Implement business logic
- Regenerate when schemas change
Examples
Multi-App Project
# Create a project
paw projects new --name "E-commerce Platform" --belongs-to user
# Create schemas
paw schemas new --project-id "project-uuid" --name "Product" --type jsonschema --schema-file ./product.json
paw schemas new --project-id "project-uuid" --name "Order" --type jsonschema --schema-file ./order.json
# Create multiple apps
paw apps new --project-id "project-uuid" --name "Web Store" --description "Next.js web application"
paw apps new --project-id "project-uuid" --name "Mobile Store" --description "React Native app"
paw apps new --project-id "project-uuid" --name "Order Service" --description "Order processing microservice"
paw apps new --project-id "project-uuid" --name "Admin Dashboard" --description "Internal admin tool"
# Generate code for each app
paw codegen app --app-id "web-app-uuid" --language typescript
paw codegen app --app-id "mobile-app-uuid" --language typescript
paw codegen app --app-id "order-service-uuid" --language python
paw codegen app --app-id "admin-app-uuid" --language typescript
Microservices Architecture
# Create apps for each microservice
paw apps new --project-id "project-uuid" --name "User Service" --description "User management"
paw apps new --project-id "project-uuid" --name "Product Service" --description "Product catalog"
paw apps new --project-id "project-uuid" --name "Cart Service" --description "Shopping cart"
paw apps new --project-id "project-uuid" --name "Payment Service" --description "Payment processing"
# Each service can generate code in its preferred language
paw codegen app --app-id "user-service-uuid" --language go
paw codegen app --app-id "product-service-uuid" --language java
paw codegen app --app-id "cart-service-uuid" --language python
paw codegen app --app-id "payment-service-uuid" --language typescript