
Product
Introducing Repository Access Permissions and Custom Roles
Socket now supports Custom Roles and Repository Access Permissions so organizations can control who can access specific repositories and actions.
@semantq/pylon
Advanced tools
Feature Guard Package For SaaS Aaplications
Model: Feature
Critical Columns:
- id (UUID)
- name (UNIQUE) → "form_create", "bulk_email", "display_stats"
- meterType → COUNT | ON_OFF
- timeframe → MONTHLY | YEARLY | FOREVER | null
- unit → "forms", "emails", "access"
- description → "Monthly form creation limit"
Purpose: Catalog of all possible billable features in the system.
Model: PricingPackage
Critical Columns:
- id (UUID)
- name → "Freemium", "Starter", "Pro"
- priceMonthly → 0, 29, 99
Purpose: Define the subscription tiers available to organizations.
Model: PricingPackageFeature (Junction Table)
Critical Columns:
- pricingPackageId (FK to PricingPackage)
- featureId (FK to Feature)
- status → true | false (is feature enabled in this package?)
- limitValue → 3, 50, 500, null (max usage for COUNT features)
Purpose: Define exactly what features each pricing package includes and their limits.
Model: Organization
Critical Columns:
- id (UUID)
- pricingPackageId (FK to PricingPackage)
Purpose: Connect each customer organization to their subscription tier.
Model: Metering
Critical Columns:
- organizationId (FK to Organization)
- featureId (FK to Feature)
- currentValue → 0, 1, 2, 3... (current usage count)
- periodStart → 2024-01-01 (start of current period)
- periodEnd → 2024-02-01 (end of current period)
Purpose: Track real-time usage per organization per feature. Created automatically when first used.
[Feature] (1) ←--- [PricingPackageFeature] (n) ---→ (1) [PricingPackage] (1) ---→ (n) [Organization]
↓ ↓
└-------------------→ (n) [Metering] (1) ←---------------------┘
(usage tracking)
Feature 1: name="form_create", meterType=COUNT, timeframe=MONTHLY, unit="forms"
Feature 2: name="bulk_email", meterType=COUNT, timeframe=MONTHLY, unit="emails"
Feature 3: name="display_stats", meterType=ON_OFF, timeframe=null, unit="access"
Create Pricing Packages:
Package 1: name="Freemium", priceMonthly=0
Package 2: name="Starter", priceMonthly=29
Package 3: name="Pro", priceMonthly=99
Assign Features to Packages:
Freemium + form_create → status=true, limitValue=3
Freemium + bulk_email → status=false, limitValue=0
Freemium + display_stats → status=false, limitValue=0
Starter + form_create → status=true, limitValue=50
Starter + bulk_email → status=true, limitValue=300
Starter + display_stats → status=true, limitValue=1
Pro + form_create → status=true, limitValue=500
Pro + bulk_email → status=true, limitValue=5000
Pro + display_stats → status=true, limitValue=1
Organization "Acme Inc" → Starter package
Organization "Startup LLC" → Freemium package
Metering record created: org=Acme, feature=form_create, currentValue=1| Step | Model | Critical Fields | Purpose |
|---|---|---|---|
| 1 | Feature | name, meterType, timeframe | Define what can be metered |
| 2 | PricingPackage | name, priceMonthly | Define product tiers |
| 3 | PricingPackageFeature | status, limitValue | Set package-specific limits |
| 4 | Organization | pricingPackageId | Assign customer to tier |
| 5 | Metering | currentValue, periodStart/End | Track real usage |
This gives SuperAdmin complete control over the feature economy while keeping the runtime simple for developers.
Creates a role-based route with Pylon dashboard layout structure.
Syntax:
semantq make:route <routeName> <role> --pylon
Examples:
# Create a plan route for project-manager role
semantq make:route plan project-manager --pylon
# Create a user-add route for admin role (short flag)
semantq make:route user-add admin -p
# Create with server handlers
semantq make:route master-plan project-manager --pylon -A
What it creates:
src/routes/<role>/<routeName>/@page.smq - Main route page with component importssrc/routes/<role>/<routeName>/@layout.smq - Dashboard layout with CSS importsKey Features:
user-add → UserAdd)Removes an existing route directory and all its contents.
Syntax:
semantq remove:route <routeName>
Options:
-y, --yes: Skip confirmation promptExample:
# Remove a route with confirmation
semantq remove:route contact
# Remove without confirmation
semantq remove:route about -y
Notes:
-y flag is usedCreates a Pylon-enabled component with feature guarding and permission-based UI.
Syntax:
semantq make:component <componentName> --pylon
Examples:
# Create a basic Pylon component
semantq make:component Plan --pylon
# Create nested Pylon component
semantq make:component admin/User --pylon
What it creates:
src/components/pylon/<componentName>.smq (or nested path)can(), canAny(), canAll() functionsKey Features:
$state and $effectRemoves a component file from the project.
Syntax:
semantq remove:component <componentName>
Options:
-p, --pylon: Remove from Pylon components directory-y, --yes: Skip confirmation promptExamples:
# Remove regular component
semantq remove:component Button
# Remove Pylon component
semantq remove:component Plan --pylon
# Remove without confirmation
semantq remove:component User -p -y
Notes:
--pylon flag for Pylon componentsGenerates a complete backend resource with Pylon feature guarding.
Syntax:
semantq make:resource <resourceName> --pylon
Examples:
# Create Pylon resource for User model
semantq make:resource User --pylon
# Create regular resource (non-Pylon)
semantq make:resource Product
What it creates:
Key Features:
Removes all backend resource files for a given resource.
Syntax:
semantq remove:resource <resourceName>
Options:
-y, --yes: Skip confirmation promptExample:
# Remove User resource with confirmation
semantq remove:resource User
# Remove without confirmation
semantq remove:resource Product -y
What it removes:
Notes:
semantqQL) to exist# 1. Create the backend resource
semantq make:resource Invoice --pylon
# 2. Create the Pylon component
semantq make:component Invoice --pylon
# 3. Create the route for admin role
semantq make:route invoice admin --pylon
This creates:
Invoice model, controller, service, routesInvoice.smq Pylon component with permission UI/admin/invoice dashboard route# Remove everything
semantq remove:resource Invoice -y
semantq remove:component Invoice --pylon -y
semantq remove:route invoice -y
Naming Conventions:
user-add)UserAdd)User)Directory Structure:
src/components/pylon/src/routes/<role>/semantqQL/ (models, controllers, services, routes)Permission System:
user.userSettings Set for permission checkscreate, read, update, delete)datagrid_csvexport, datagrid_excelexport)File Generation:
FAQs
Feature Guard Package For SaaS Applications
We found that @semantq/pylon demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Product
Socket now supports Custom Roles and Repository Access Permissions so organizations can control who can access specific repositories and actions.

Product
Socket MCP now lets AI assistants review org alerts, investigate threats using the Socket threat feed, and inspect package files in addition to dependency scoring.

Product
Socket Firewall blocks malicious VS Code and Open VSX extensions before install, protecting developers from compromised editor marketplaces.