Applications
Applications are first-class entities in NetPad that group related forms, workflows, and connections together. They provide organization, versioning, sharing, and access control capabilities.
What Are Applications?โ
Applications are containers that organize related resources:
- Forms: All forms associated with the application
- Workflows: Automation workflows for the application
- Connections: Form-to-workflow triggers and integrations
- Releases: Versioned snapshots with semantic versioning
- Stats: Application-level metrics
Why Use Applications?โ
Applications provide several benefits:
- Organization: Group related forms and workflows logically
- Versioning: Create releases to snapshot applications at specific versions
- Sharing: Publish applications to the marketplace
- Export: Export entire applications as bundles or as standalone apps
- Access Control: Fine-grained permissions at application level
- Insights: Track application-level statistics
Applications can be exported as Standalone apps that run completely independently from NetPad. This is the "escape hatch" for true ownership of your applications. See Deployment Modes to learn more.
Creating Applicationsโ
Step 1: Create New Applicationโ
- Navigate to Applications in the sidebar
- Click "New Application"
- Enter application details:
- Name: Descriptive name (e.g., "Customer Portal")
- Description: What the application does
- Category: Application category
- Tags: Searchable tags
Step 2: Add Resourcesโ
Add forms, workflows, and connections to your application:
-
Add Forms:
- Click "Add Form" in application
- Select existing forms or create new ones
- Forms are linked to the application
-
Add Workflows:
- Click "Add Workflow"
- Select existing workflows or create new ones
- Workflows are linked to the application
-
Add Connections:
- Configure form-to-workflow triggers
- Set up integrations
- Define data flows
Application Structureโ
Application: Customer Portal
โโโ Forms
โ โโโ Contact Form
โ โโโ Support Ticket Form
โ โโโ Feedback Form
โโโ Workflows
โ โโโ Email Notification Workflow
โ โโโ Ticket Routing Workflow
โโโ Connections
โ โโโ Contact โ Email Notification
โ โโโ Support Ticket โ Ticket Routing
โโโ Releases
โโโ v1.0.0 (Initial release)
โโโ v1.1.0 (Added feedback form)
โโโ v2.0.0 (Major update)
Application Releasesโ
Creating Releasesโ
Releases are versioned snapshots of your application:
-
Prepare Application:
- Ensure all forms and workflows are configured
- Test everything works correctly
- Document changes
-
Create Release:
- Click "Create Release" in application
- Enter version number (semantic versioning: X.Y.Z)
- Add changelog notes
- Click "Create Release"
-
Release Snapshot:
- Forms, workflows, and connections are snapshotted
- Release is immutable
- Can be restored or exported
Semantic Versioningโ
Releases use semantic versioning (Major.Minor.Patch):
- Major (X.0.0): Breaking changes
- Minor (0.X.0): New features, backward compatible
- Patch (0.0.X): Bug fixes, backward compatible
Example:
v1.0.0 - Initial release
v1.1.0 - Added feedback form (new feature)
v1.1.1 - Fixed email notification bug (patch)
v2.0.0 - Redesigned forms (breaking changes)
Release Featuresโ
- Immutable Snapshots: Releases cannot be modified
- Changelog Tracking: Document what changed
- Manifest Generation: Automatic manifest for marketplace
- Version Suggestion: AI suggests next version based on changes
- Export: Export releases as bundles
Application Permissions (RBAC)โ
Applications have fine-grained access control separate from organization roles.
Permission Rolesโ
| Role | Capabilities |
|---|---|
| Owner | Full control: edit, manage permissions, create releases, delete |
| Editor | Edit application, create releases, cannot manage permissions |
| Analyst | View application, analyze data, read-only access |
| Viewer | Read-only access to application and its resources |
Access Modesโ
Applications can be set to:
- org_members: All organization members have access (based on org role)
- explicit: Permission-based access (requires explicit permission grants)
Managing Permissionsโ
-
Open Application: Navigate to application detail view
-
Permissions Tab: Click "Permissions" tab
-
Grant Permissions:
- Click "Add Permission"
- Select user from organization members
- Choose role (Editor, Analyst, Viewer)
- Click "Grant"
-
Update Permissions:
- Click edit on existing permission
- Change role
- Save changes
-
Revoke Permissions:
- Click delete on permission
- Confirm removal
Contract Integrationโ
Active contracts restrict editing:
- Owners: Always have full access
- Explicit Permissions: Users with explicit permissions can edit
- Others: Read-only access when contract is active
Application Contracts & Protectionโ
Contract Definitionโ
Define public API surface for your application:
- Inputs: What data the application accepts
- Outputs: What data the application produces
- Side Effects: External actions (emails, webhooks, etc.)
- Events: Events the application emits
- Behaviors: How the application behaves
Contract Lifecycleโ
Contracts have lifecycle states:
- Draft: Being defined, not enforced
- Active: Enforced, breaking changes require major version bump
- Deprecated: Still active but being phased out
Breaking Change Detectionโ
When creating a release:
- Contract Comparison: Compare current contract with previous release
- Change Detection: Identify breaking vs non-breaking changes
- Version Validation: Require major version bump for breaking changes
- Migration Guides: Auto-generate migration instructions
Component Protectionโ
Lock forms and workflows to prevent accidental modifications:
- Protection Indicators: Visual lock status in editors
- Editable Fields: Explicit fields that can be modified
- Protected Fields: Fields locked by contract
- Unlock Process: Owners can unlock for updates
Application Marketplaceโ
Publishing Applicationsโ
Share your applications with the community:
-
Prepare Application:
- Create release
- Add marketplace metadata
- Write description
- Add screenshots
-
Submit to Marketplace:
- Click "Publish to Marketplace"
- Fill out marketplace form
- Submit for review
-
Admin Review:
- Platform admins review submission
- Approve or reject with feedback
- Official designation for verified apps
-
Published:
- Application appears in marketplace
- Others can discover and import
- You can manage from "My Applications"
My Applicationsโ
Manage your published applications:
- View Published: See all your published applications
- Edit Listing: Update marketplace listing
- Unpublish: Remove from marketplace
- Delete: Delete application (requires confirmation)
Importing Applicationsโ
Import applications from the marketplace:
- Browse Marketplace: Find applications by category, tags, or search
- Preview Application: View details, screenshots, requirements
- Import: Click "Import" to add to your project
- Configure: Set up connections and customize as needed
Official vs Communityโ
- Official: NetPad-verified applications (
@netpad/scope) - Community: User-created applications (various scopes)
npm Package Integrationโ
Publishing to npmโ
Applications can be published as npm packages:
- Generate Package: Create npm-ready package from application
- Package Structure: Automatic package.json with NetPad metadata
- Bundle Export: Complete application bundle included
- Publish: Publish to npm registry
Installing from npmโ
Install applications directly from npm:
- Search npm: Find NetPad packages by keywords
- Install: Use npm install or NetPad CLI
- Dependency Resolution: Automatic dependency installation
- Version Support: Install specific versions or ranges
npm Registry Syncโ
- Automatic Discovery: NetPad discovers packages on npm
- Background Sync: Keeps marketplace up-to-date
- Manual Sync: Trigger sync via API
- Status Tracking: Monitor sync status and errors
Application Analyticsโ
Track application-level metrics:
- Forms Count: Number of forms in application
- Workflows Count: Number of workflows
- Connections Count: Number of connections
- Submissions: Total form submissions
- Workflow Executions: Total workflow runs
- Release History: All releases and versions
Best Practicesโ
Organizationโ
- Logical Grouping: Group related forms and workflows
- Clear Naming: Use descriptive application names
- Good Descriptions: Explain what the application does
- Consistent Structure: Follow consistent patterns
Versioningโ
- Semantic Versioning: Follow X.Y.Z format
- Clear Changelogs: Document all changes
- Test Before Release: Ensure everything works
- Major Versions: Use for breaking changes
Permissionsโ
- Principle of Least Privilege: Grant minimum necessary permissions
- Regular Review: Review permissions periodically
- Document Access: Document who has access and why
- Contract Protection: Use contracts to protect critical applications
Marketplaceโ
- Complete Metadata: Fill out all marketplace fields
- Good Screenshots: Show application in action
- Clear Documentation: Explain how to use
- Maintain: Keep applications updated
Next Stepsโ
- Application Marketplace - Discover and share applications
- Projects - Organize applications in projects
- Organizations - Manage organization resources