@hasna/microservices 0.0.15 → 0.0.17
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +120 -138
- package/bin/index.js +703 -12728
- package/bin/mcp.js +250 -9726
- package/dist/index.js +170 -9407
- package/package.json +25 -25
- package/microservices/microservice-ads/package.json +0 -27
- package/microservices/microservice-ads/src/cli/index.ts +0 -605
- package/microservices/microservice-ads/src/db/campaigns.ts +0 -797
- package/microservices/microservice-ads/src/db/database.ts +0 -93
- package/microservices/microservice-ads/src/db/migrations.ts +0 -60
- package/microservices/microservice-ads/src/index.ts +0 -39
- package/microservices/microservice-ads/src/mcp/index.ts +0 -480
- package/microservices/microservice-analytics/package.json +0 -27
- package/microservices/microservice-analytics/src/cli/index.ts +0 -373
- package/microservices/microservice-analytics/src/db/analytics.ts +0 -564
- package/microservices/microservice-analytics/src/db/database.ts +0 -93
- package/microservices/microservice-analytics/src/db/migrations.ts +0 -50
- package/microservices/microservice-analytics/src/index.ts +0 -37
- package/microservices/microservice-analytics/src/mcp/index.ts +0 -334
- package/microservices/microservice-assets/package.json +0 -27
- package/microservices/microservice-assets/src/cli/index.ts +0 -375
- package/microservices/microservice-assets/src/db/assets.ts +0 -370
- package/microservices/microservice-assets/src/db/database.ts +0 -93
- package/microservices/microservice-assets/src/db/migrations.ts +0 -51
- package/microservices/microservice-assets/src/index.ts +0 -32
- package/microservices/microservice-assets/src/mcp/index.ts +0 -346
- package/microservices/microservice-bookkeeping/package.json +0 -27
- package/microservices/microservice-bookkeeping/src/cli/index.ts +0 -386
- package/microservices/microservice-bookkeeping/src/db/bookkeeping.ts +0 -591
- package/microservices/microservice-bookkeeping/src/db/database.ts +0 -93
- package/microservices/microservice-bookkeeping/src/db/migrations.ts +0 -52
- package/microservices/microservice-bookkeeping/src/index.ts +0 -32
- package/microservices/microservice-bookkeeping/src/mcp/index.ts +0 -284
- package/microservices/microservice-calendar/package.json +0 -27
- package/microservices/microservice-calendar/src/cli/index.ts +0 -287
- package/microservices/microservice-calendar/src/db/calendar.ts +0 -328
- package/microservices/microservice-calendar/src/db/database.ts +0 -82
- package/microservices/microservice-calendar/src/db/migrations.ts +0 -47
- package/microservices/microservice-calendar/src/index.ts +0 -24
- package/microservices/microservice-calendar/src/mcp/index.ts +0 -226
- package/microservices/microservice-company/package.json +0 -27
- package/microservices/microservice-company/src/cli/index.ts +0 -1126
- package/microservices/microservice-company/src/db/company.ts +0 -854
- package/microservices/microservice-company/src/db/database.ts +0 -93
- package/microservices/microservice-company/src/db/migrations.ts +0 -214
- package/microservices/microservice-company/src/db/workflow-migrations.ts +0 -44
- package/microservices/microservice-company/src/index.ts +0 -60
- package/microservices/microservice-company/src/lib/audit.ts +0 -168
- package/microservices/microservice-company/src/lib/finance.ts +0 -299
- package/microservices/microservice-company/src/lib/settings.ts +0 -85
- package/microservices/microservice-company/src/lib/workflows.ts +0 -698
- package/microservices/microservice-company/src/mcp/index.ts +0 -991
- package/microservices/microservice-compliance/package.json +0 -27
- package/microservices/microservice-compliance/src/cli/index.ts +0 -467
- package/microservices/microservice-compliance/src/db/compliance.ts +0 -633
- package/microservices/microservice-compliance/src/db/database.ts +0 -93
- package/microservices/microservice-compliance/src/db/migrations.ts +0 -63
- package/microservices/microservice-compliance/src/index.ts +0 -46
- package/microservices/microservice-compliance/src/mcp/index.ts +0 -438
- package/microservices/microservice-contacts/package.json +0 -27
- package/microservices/microservice-contacts/src/cli/index.ts +0 -393
- package/microservices/microservice-contacts/src/db/companies.ts +0 -167
- package/microservices/microservice-contacts/src/db/contacts.ts +0 -249
- package/microservices/microservice-contacts/src/db/database.ts +0 -93
- package/microservices/microservice-contacts/src/db/migrations.ts +0 -71
- package/microservices/microservice-contacts/src/db/relationships.ts +0 -53
- package/microservices/microservice-contacts/src/index.ts +0 -42
- package/microservices/microservice-contacts/src/mcp/index.ts +0 -303
- package/microservices/microservice-contracts/package.json +0 -27
- package/microservices/microservice-contracts/src/cli/index.ts +0 -770
- package/microservices/microservice-contracts/src/db/contracts.ts +0 -925
- package/microservices/microservice-contracts/src/db/database.ts +0 -93
- package/microservices/microservice-contracts/src/db/migrations.ts +0 -141
- package/microservices/microservice-contracts/src/index.ts +0 -43
- package/microservices/microservice-contracts/src/mcp/index.ts +0 -617
- package/microservices/microservice-crm/package.json +0 -27
- package/microservices/microservice-crm/src/cli/index.ts +0 -396
- package/microservices/microservice-crm/src/db/database.ts +0 -82
- package/microservices/microservice-crm/src/db/migrations.ts +0 -66
- package/microservices/microservice-crm/src/db/pipeline.ts +0 -397
- package/microservices/microservice-crm/src/index.ts +0 -34
- package/microservices/microservice-crm/src/mcp/index.ts +0 -294
- package/microservices/microservice-documents/package.json +0 -27
- package/microservices/microservice-documents/src/cli/index.ts +0 -246
- package/microservices/microservice-documents/src/db/database.ts +0 -82
- package/microservices/microservice-documents/src/db/documents.ts +0 -316
- package/microservices/microservice-documents/src/db/migrations.ts +0 -49
- package/microservices/microservice-documents/src/index.ts +0 -24
- package/microservices/microservice-documents/src/mcp/index.ts +0 -202
- package/microservices/microservice-domains/package.json +0 -27
- package/microservices/microservice-domains/src/cli/index.ts +0 -1111
- package/microservices/microservice-domains/src/db/database.ts +0 -93
- package/microservices/microservice-domains/src/db/domains.ts +0 -1164
- package/microservices/microservice-domains/src/db/migrations.ts +0 -60
- package/microservices/microservice-domains/src/index.ts +0 -65
- package/microservices/microservice-domains/src/lib/brandsight.ts +0 -350
- package/microservices/microservice-domains/src/lib/godaddy.ts +0 -338
- package/microservices/microservice-domains/src/lib/namecheap.ts +0 -262
- package/microservices/microservice-domains/src/lib/registrar.ts +0 -355
- package/microservices/microservice-domains/src/mcp/index.ts +0 -781
- package/microservices/microservice-expenses/package.json +0 -27
- package/microservices/microservice-expenses/src/cli/index.ts +0 -267
- package/microservices/microservice-expenses/src/db/database.ts +0 -82
- package/microservices/microservice-expenses/src/db/expenses.ts +0 -345
- package/microservices/microservice-expenses/src/db/migrations.ts +0 -45
- package/microservices/microservice-expenses/src/index.ts +0 -25
- package/microservices/microservice-expenses/src/mcp/index.ts +0 -196
- package/microservices/microservice-habits/package.json +0 -27
- package/microservices/microservice-habits/src/cli/index.ts +0 -315
- package/microservices/microservice-habits/src/db/database.ts +0 -93
- package/microservices/microservice-habits/src/db/habits.ts +0 -451
- package/microservices/microservice-habits/src/db/migrations.ts +0 -46
- package/microservices/microservice-habits/src/index.ts +0 -31
- package/microservices/microservice-habits/src/mcp/index.ts +0 -313
- package/microservices/microservice-health/package.json +0 -27
- package/microservices/microservice-health/src/cli/index.ts +0 -484
- package/microservices/microservice-health/src/db/database.ts +0 -93
- package/microservices/microservice-health/src/db/health.ts +0 -708
- package/microservices/microservice-health/src/db/migrations.ts +0 -70
- package/microservices/microservice-health/src/index.ts +0 -63
- package/microservices/microservice-health/src/mcp/index.ts +0 -437
- package/microservices/microservice-hiring/package.json +0 -27
- package/microservices/microservice-hiring/src/cli/index.ts +0 -741
- package/microservices/microservice-hiring/src/db/database.ts +0 -93
- package/microservices/microservice-hiring/src/db/hiring.ts +0 -1085
- package/microservices/microservice-hiring/src/db/migrations.ts +0 -89
- package/microservices/microservice-hiring/src/index.ts +0 -80
- package/microservices/microservice-hiring/src/lib/scoring.ts +0 -206
- package/microservices/microservice-hiring/src/mcp/index.ts +0 -709
- package/microservices/microservice-inventory/package.json +0 -27
- package/microservices/microservice-inventory/src/cli/index.ts +0 -365
- package/microservices/microservice-inventory/src/db/database.ts +0 -82
- package/microservices/microservice-inventory/src/db/inventory.ts +0 -393
- package/microservices/microservice-inventory/src/db/migrations.ts +0 -54
- package/microservices/microservice-inventory/src/index.ts +0 -28
- package/microservices/microservice-inventory/src/mcp/index.ts +0 -250
- package/microservices/microservice-invoices/dashboard/dist/assets/index-Bngq7FNM.css +0 -1
- package/microservices/microservice-invoices/dashboard/dist/assets/index-aHW4ARZR.js +0 -124
- package/microservices/microservice-invoices/dashboard/dist/index.html +0 -13
- package/microservices/microservice-invoices/dashboard/index.html +0 -12
- package/microservices/microservice-invoices/dashboard/package.json +0 -29
- package/microservices/microservice-invoices/dashboard/tsconfig.json +0 -14
- package/microservices/microservice-invoices/dashboard/vite.config.ts +0 -15
- package/microservices/microservice-invoices/package.json +0 -30
- package/microservices/microservice-invoices/src/cli/index.ts +0 -308
- package/microservices/microservice-invoices/src/db/business.ts +0 -241
- package/microservices/microservice-invoices/src/db/clients.ts +0 -127
- package/microservices/microservice-invoices/src/db/database.ts +0 -82
- package/microservices/microservice-invoices/src/db/invoices.ts +0 -345
- package/microservices/microservice-invoices/src/db/migrations.ts +0 -184
- package/microservices/microservice-invoices/src/index.ts +0 -56
- package/microservices/microservice-invoices/src/mcp/index.ts +0 -242
- package/microservices/microservice-invoices/src/server/index.ts +0 -162
- package/microservices/microservice-leads/package.json +0 -27
- package/microservices/microservice-leads/src/cli/index.ts +0 -596
- package/microservices/microservice-leads/src/db/database.ts +0 -93
- package/microservices/microservice-leads/src/db/leads.ts +0 -520
- package/microservices/microservice-leads/src/db/lists.ts +0 -151
- package/microservices/microservice-leads/src/db/migrations.ts +0 -93
- package/microservices/microservice-leads/src/index.ts +0 -65
- package/microservices/microservice-leads/src/lib/enrichment.ts +0 -202
- package/microservices/microservice-leads/src/lib/scoring.ts +0 -134
- package/microservices/microservice-leads/src/mcp/index.ts +0 -533
- package/microservices/microservice-notes/package.json +0 -27
- package/microservices/microservice-notes/src/cli/index.ts +0 -63
- package/microservices/microservice-notes/src/db/database.ts +0 -93
- package/microservices/microservice-notes/src/db/migrations.ts +0 -40
- package/microservices/microservice-notes/src/db/notes.ts +0 -114
- package/microservices/microservice-notes/src/index.ts +0 -2
- package/microservices/microservice-notes/src/mcp/index.ts +0 -37
- package/microservices/microservice-notifications/package.json +0 -27
- package/microservices/microservice-notifications/src/cli/index.ts +0 -349
- package/microservices/microservice-notifications/src/db/database.ts +0 -93
- package/microservices/microservice-notifications/src/db/migrations.ts +0 -62
- package/microservices/microservice-notifications/src/db/notifications.ts +0 -509
- package/microservices/microservice-notifications/src/index.ts +0 -41
- package/microservices/microservice-notifications/src/mcp/index.ts +0 -422
- package/microservices/microservice-payments/package.json +0 -27
- package/microservices/microservice-payments/src/cli/index.ts +0 -609
- package/microservices/microservice-payments/src/db/database.ts +0 -93
- package/microservices/microservice-payments/src/db/migrations.ts +0 -81
- package/microservices/microservice-payments/src/db/payments.ts +0 -1204
- package/microservices/microservice-payments/src/index.ts +0 -51
- package/microservices/microservice-payments/src/mcp/index.ts +0 -683
- package/microservices/microservice-payroll/package.json +0 -27
- package/microservices/microservice-payroll/src/cli/index.ts +0 -643
- package/microservices/microservice-payroll/src/db/database.ts +0 -93
- package/microservices/microservice-payroll/src/db/migrations.ts +0 -95
- package/microservices/microservice-payroll/src/db/payroll.ts +0 -1377
- package/microservices/microservice-payroll/src/index.ts +0 -48
- package/microservices/microservice-payroll/src/mcp/index.ts +0 -666
- package/microservices/microservice-products/package.json +0 -27
- package/microservices/microservice-products/src/cli/index.ts +0 -416
- package/microservices/microservice-products/src/db/categories.ts +0 -154
- package/microservices/microservice-products/src/db/database.ts +0 -93
- package/microservices/microservice-products/src/db/migrations.ts +0 -58
- package/microservices/microservice-products/src/db/pricing-tiers.ts +0 -66
- package/microservices/microservice-products/src/db/products.ts +0 -452
- package/microservices/microservice-products/src/index.ts +0 -53
- package/microservices/microservice-products/src/mcp/index.ts +0 -453
- package/microservices/microservice-projects/package.json +0 -27
- package/microservices/microservice-projects/src/cli/index.ts +0 -480
- package/microservices/microservice-projects/src/db/database.ts +0 -93
- package/microservices/microservice-projects/src/db/migrations.ts +0 -65
- package/microservices/microservice-projects/src/db/projects.ts +0 -715
- package/microservices/microservice-projects/src/index.ts +0 -57
- package/microservices/microservice-projects/src/mcp/index.ts +0 -501
- package/microservices/microservice-proposals/package.json +0 -27
- package/microservices/microservice-proposals/src/cli/index.ts +0 -400
- package/microservices/microservice-proposals/src/db/database.ts +0 -93
- package/microservices/microservice-proposals/src/db/migrations.ts +0 -52
- package/microservices/microservice-proposals/src/db/proposals.ts +0 -532
- package/microservices/microservice-proposals/src/index.ts +0 -37
- package/microservices/microservice-proposals/src/mcp/index.ts +0 -375
- package/microservices/microservice-reading/package.json +0 -27
- package/microservices/microservice-reading/src/cli/index.ts +0 -464
- package/microservices/microservice-reading/src/db/database.ts +0 -93
- package/microservices/microservice-reading/src/db/migrations.ts +0 -59
- package/microservices/microservice-reading/src/db/reading.ts +0 -524
- package/microservices/microservice-reading/src/index.ts +0 -51
- package/microservices/microservice-reading/src/mcp/index.ts +0 -368
- package/microservices/microservice-shipping/package.json +0 -27
- package/microservices/microservice-shipping/src/cli/index.ts +0 -606
- package/microservices/microservice-shipping/src/db/database.ts +0 -93
- package/microservices/microservice-shipping/src/db/migrations.ts +0 -69
- package/microservices/microservice-shipping/src/db/shipping.ts +0 -1093
- package/microservices/microservice-shipping/src/index.ts +0 -53
- package/microservices/microservice-shipping/src/mcp/index.ts +0 -533
- package/microservices/microservice-social/package.json +0 -28
- package/microservices/microservice-social/src/cli/index.ts +0 -1583
- package/microservices/microservice-social/src/db/database.ts +0 -93
- package/microservices/microservice-social/src/db/migrations.ts +0 -160
- package/microservices/microservice-social/src/db/social.ts +0 -1076
- package/microservices/microservice-social/src/index.ts +0 -46
- package/microservices/microservice-social/src/lib/audience.ts +0 -353
- package/microservices/microservice-social/src/lib/content-ai.ts +0 -278
- package/microservices/microservice-social/src/lib/media.ts +0 -311
- package/microservices/microservice-social/src/lib/mentions.ts +0 -434
- package/microservices/microservice-social/src/lib/metrics-sync.ts +0 -264
- package/microservices/microservice-social/src/lib/publisher.ts +0 -377
- package/microservices/microservice-social/src/lib/scheduler.ts +0 -229
- package/microservices/microservice-social/src/lib/sentiment.ts +0 -256
- package/microservices/microservice-social/src/lib/threads.ts +0 -291
- package/microservices/microservice-social/src/mcp/index.ts +0 -1425
- package/microservices/microservice-social/src/server/index.ts +0 -441
- package/microservices/microservice-subscriptions/package.json +0 -27
- package/microservices/microservice-subscriptions/src/cli/index.ts +0 -715
- package/microservices/microservice-subscriptions/src/db/database.ts +0 -93
- package/microservices/microservice-subscriptions/src/db/migrations.ts +0 -125
- package/microservices/microservice-subscriptions/src/db/subscriptions.ts +0 -1256
- package/microservices/microservice-subscriptions/src/index.ts +0 -41
- package/microservices/microservice-subscriptions/src/mcp/index.ts +0 -631
- package/microservices/microservice-timesheets/package.json +0 -27
- package/microservices/microservice-timesheets/src/cli/index.ts +0 -373
- package/microservices/microservice-timesheets/src/db/database.ts +0 -82
- package/microservices/microservice-timesheets/src/db/locale.ts +0 -217
- package/microservices/microservice-timesheets/src/db/migrations.ts +0 -74
- package/microservices/microservice-timesheets/src/db/timesheets.ts +0 -447
- package/microservices/microservice-timesheets/src/index.ts +0 -44
- package/microservices/microservice-timesheets/src/mcp/index.ts +0 -269
- package/microservices/microservice-transcriber/package.json +0 -28
- package/microservices/microservice-transcriber/src/cli/index.ts +0 -1593
- package/microservices/microservice-transcriber/src/db/annotations.ts +0 -37
- package/microservices/microservice-transcriber/src/db/comments.ts +0 -166
- package/microservices/microservice-transcriber/src/db/database.ts +0 -82
- package/microservices/microservice-transcriber/src/db/migrations.ts +0 -118
- package/microservices/microservice-transcriber/src/db/proofread.ts +0 -119
- package/microservices/microservice-transcriber/src/db/transcripts.ts +0 -395
- package/microservices/microservice-transcriber/src/index.ts +0 -43
- package/microservices/microservice-transcriber/src/lib/config.ts +0 -77
- package/microservices/microservice-transcriber/src/lib/diff.ts +0 -91
- package/microservices/microservice-transcriber/src/lib/downloader.ts +0 -638
- package/microservices/microservice-transcriber/src/lib/feeds.ts +0 -62
- package/microservices/microservice-transcriber/src/lib/live.ts +0 -94
- package/microservices/microservice-transcriber/src/lib/notion.ts +0 -129
- package/microservices/microservice-transcriber/src/lib/proofread.ts +0 -296
- package/microservices/microservice-transcriber/src/lib/providers.ts +0 -713
- package/microservices/microservice-transcriber/src/lib/summarizer.ts +0 -147
- package/microservices/microservice-transcriber/src/lib/translator.ts +0 -75
- package/microservices/microservice-transcriber/src/lib/webhook.ts +0 -37
- package/microservices/microservice-transcriber/src/mcp/index.ts +0 -1330
- package/microservices/microservice-transcriber/src/server/index.ts +0 -199
- package/microservices/microservice-travel/package.json +0 -27
- package/microservices/microservice-travel/src/cli/index.ts +0 -505
- package/microservices/microservice-travel/src/db/database.ts +0 -93
- package/microservices/microservice-travel/src/db/migrations.ts +0 -77
- package/microservices/microservice-travel/src/db/travel.ts +0 -802
- package/microservices/microservice-travel/src/index.ts +0 -60
- package/microservices/microservice-travel/src/mcp/index.ts +0 -495
- package/microservices/microservice-wiki/package.json +0 -27
- package/microservices/microservice-wiki/src/cli/index.ts +0 -345
- package/microservices/microservice-wiki/src/db/database.ts +0 -93
- package/microservices/microservice-wiki/src/db/migrations.ts +0 -55
- package/microservices/microservice-wiki/src/db/wiki.ts +0 -395
- package/microservices/microservice-wiki/src/index.ts +0 -32
- package/microservices/microservice-wiki/src/mcp/index.ts +0 -344
package/README.md
CHANGED
|
@@ -1,189 +1,171 @@
|
|
|
1
1
|
# @hasna/microservices
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
> Production-grade microservice building blocks for SaaS apps.
|
|
4
|
+
|
|
5
|
+
Each microservice is an **independent npm package** with its own PostgreSQL schema, HTTP API, MCP server, and CLI binary. Install only what you need. Plug into any app.
|
|
6
|
+
|
|
7
|
+
[](https://www.npmjs.com/package/@hasna/microservices)
|
|
8
|
+
|
|
9
|
+
## The 8 Microservices
|
|
10
|
+
|
|
11
|
+
| Package | Binary | Schema | What it does |
|
|
12
|
+
|---------|--------|--------|--------------|
|
|
13
|
+
| `@hasna/microservice-auth` | `microservice-auth` | `auth.*` | Users, sessions, JWT, magic links, OAuth, 2FA, API keys |
|
|
14
|
+
| `@hasna/microservice-teams` | `microservice-teams` | `teams.*` | Workspaces, members, RBAC (owner/admin/member/viewer), invites |
|
|
15
|
+
| `@hasna/microservice-billing` | `microservice-billing` | `billing.*` | Stripe subscriptions, plans, invoices, usage-based billing |
|
|
16
|
+
| `@hasna/microservice-notify` | `microservice-notify` | `notify.*` | Email, SMS, in-app, outbound webhooks, templates |
|
|
17
|
+
| `@hasna/microservice-files` | `microservice-files` | `files.*` | Uploads, S3 storage, presigned URLs, image transforms |
|
|
18
|
+
| `@hasna/microservice-audit` | `microservice-audit` | `audit.*` | Immutable event log, compliance trail, retention policies |
|
|
19
|
+
| `@hasna/microservice-flags` | `microservice-flags` | `flags.*` | Feature flags, gradual rollouts, A/B experiments |
|
|
20
|
+
| `@hasna/microservice-jobs` | `microservice-jobs` | `jobs.*` | Background jobs, priority queues (SKIP LOCKED), cron, retries |
|
|
4
21
|
|
|
5
22
|
## Install
|
|
6
23
|
|
|
7
24
|
```bash
|
|
25
|
+
# Install one or more
|
|
26
|
+
bun install -g @hasna/microservice-auth @hasna/microservice-teams
|
|
27
|
+
|
|
28
|
+
# Or use the hub CLI to manage all
|
|
8
29
|
bun install -g @hasna/microservices
|
|
30
|
+
microservices install auth teams billing
|
|
9
31
|
```
|
|
10
32
|
|
|
11
|
-
##
|
|
12
|
-
|
|
13
|
-
Register with all AI coding agents in one command:
|
|
33
|
+
## Quick Start
|
|
14
34
|
|
|
15
35
|
```bash
|
|
16
|
-
|
|
36
|
+
# 1. Install a service
|
|
37
|
+
bun install -g @hasna/microservice-auth
|
|
38
|
+
|
|
39
|
+
# 2. Run migrations against your PostgreSQL
|
|
40
|
+
microservice-auth migrate --db postgres://localhost/myapp
|
|
41
|
+
|
|
42
|
+
# 3. Start the HTTP API (standalone mode)
|
|
43
|
+
microservice-auth serve --port 3001
|
|
44
|
+
|
|
45
|
+
# 4. Or start the MCP server (for AI agents)
|
|
46
|
+
microservice-auth mcp
|
|
17
47
|
```
|
|
18
48
|
|
|
19
|
-
|
|
49
|
+
## Two Modes: Embedded or Standalone
|
|
20
50
|
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
51
|
+
### Embedded — import in your app
|
|
52
|
+
|
|
53
|
+
```ts
|
|
54
|
+
import { migrate, register, login } from '@hasna/microservice-auth'
|
|
55
|
+
|
|
56
|
+
const sql = getDb('postgres://localhost/myapp')
|
|
57
|
+
await migrate(sql)
|
|
58
|
+
|
|
59
|
+
const { user, access_token, session } = await register(sql, {
|
|
60
|
+
email: 'user@example.com',
|
|
61
|
+
password: 'secure-password',
|
|
62
|
+
})
|
|
25
63
|
```
|
|
26
64
|
|
|
27
|
-
|
|
65
|
+
### Standalone — run as HTTP service
|
|
28
66
|
|
|
29
|
-
|
|
30
|
-
|
|
67
|
+
```bash
|
|
68
|
+
microservice-auth serve --port 3001
|
|
69
|
+
# POST http://localhost:3001/auth/register
|
|
70
|
+
# POST http://localhost:3001/auth/login
|
|
71
|
+
# GET http://localhost:3001/auth/session
|
|
72
|
+
```
|
|
31
73
|
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
74
|
+
## Complete SaaS Stack Example
|
|
75
|
+
|
|
76
|
+
```ts
|
|
77
|
+
import { register } from '@hasna/microservice-auth'
|
|
78
|
+
import { createWorkspace, checkPermission } from '@hasna/microservice-teams'
|
|
79
|
+
import { createCheckoutSession } from '@hasna/microservice-billing'
|
|
80
|
+
import { sendNotification } from '@hasna/microservice-notify'
|
|
81
|
+
import { logEvent } from '@hasna/microservice-audit'
|
|
82
|
+
import { evaluateFlag } from '@hasna/microservice-flags'
|
|
83
|
+
import { enqueue } from '@hasna/microservice-jobs'
|
|
84
|
+
|
|
85
|
+
const { user, access_token } = await register(sql, { email, password })
|
|
86
|
+
const workspace = await createWorkspace(sql, { name: 'My Company', ownerId: user.id })
|
|
87
|
+
const checkout = await createCheckoutSession({ workspaceId: workspace.id, planId, successUrl, cancelUrl, stripeSecretKey })
|
|
88
|
+
await sendNotification(sql, { userId: user.id, channel: 'email', type: 'welcome', body: 'Welcome!' })
|
|
89
|
+
await logEvent(sql, { actorId: user.id, action: 'user.registered', resourceType: 'user', resourceId: user.id })
|
|
90
|
+
const { value } = await evaluateFlag(sql, 'new-onboarding', { userId: user.id })
|
|
91
|
+
await enqueue(sql, { type: 'onboarding.setup', payload: { userId: user.id } })
|
|
43
92
|
```
|
|
44
|
-
</details>
|
|
45
93
|
|
|
46
|
-
|
|
47
|
-
|
|
94
|
+
## Environment Variables
|
|
95
|
+
|
|
96
|
+
| Variable | Used by | Required |
|
|
97
|
+
|----------|---------|----------|
|
|
98
|
+
| `DATABASE_URL` | All services | Yes |
|
|
99
|
+
| `JWT_SECRET` | auth | Yes |
|
|
100
|
+
| `STRIPE_SECRET_KEY` | billing | Yes |
|
|
101
|
+
| `STRIPE_WEBHOOK_SECRET` | billing | Yes |
|
|
102
|
+
| `RESEND_API_KEY` | notify (email) | Optional |
|
|
103
|
+
| `TWILIO_ACCOUNT_SID` | notify (SMS) | Optional |
|
|
104
|
+
| `S3_BUCKET` | files | Optional (falls back to local) |
|
|
105
|
+
| `GITHUB_CLIENT_ID` | auth (OAuth) | Optional |
|
|
106
|
+
| `GOOGLE_CLIENT_ID` | auth (OAuth) | Optional |
|
|
48
107
|
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
108
|
+
## Hub CLI
|
|
109
|
+
|
|
110
|
+
```bash
|
|
111
|
+
microservices list # List all available microservices
|
|
112
|
+
microservices install auth teams # Install specific services
|
|
113
|
+
microservices install --all # Install all 8
|
|
114
|
+
microservices status # Check what's installed
|
|
115
|
+
microservices info auth # Detailed info + required env
|
|
116
|
+
microservices migrate-all # Run migrations on all installed
|
|
117
|
+
microservices run auth status # Run any CLI command on a service
|
|
118
|
+
microservices search stripe # Search by keyword
|
|
52
119
|
```
|
|
53
|
-
</details>
|
|
54
120
|
|
|
55
|
-
|
|
56
|
-
|
|
121
|
+
## Hub MCP Server
|
|
122
|
+
|
|
123
|
+
For AI agents — add to your Claude config:
|
|
57
124
|
|
|
58
125
|
```json
|
|
59
126
|
{
|
|
60
127
|
"mcpServers": {
|
|
61
128
|
"microservices": {
|
|
62
|
-
"command": "microservices-mcp"
|
|
63
|
-
"args": []
|
|
129
|
+
"command": "microservices-mcp"
|
|
64
130
|
}
|
|
65
131
|
}
|
|
66
132
|
}
|
|
67
133
|
```
|
|
68
|
-
</details>
|
|
69
134
|
|
|
70
|
-
|
|
135
|
+
Tools: `list_microservices`, `search_microservices`, `install_microservice`, `microservice_status`, `run_microservice_command`, `remove_microservice`, `get_microservice_info`
|
|
71
136
|
|
|
72
|
-
|
|
73
|
-
# Browse available microservices
|
|
74
|
-
microservices
|
|
137
|
+
## PostgreSQL Schema Isolation
|
|
75
138
|
|
|
76
|
-
|
|
77
|
-
microservices install contacts invoices
|
|
139
|
+
Each service owns its schema — all on one PostgreSQL instance:
|
|
78
140
|
|
|
79
|
-
# Run commands
|
|
80
|
-
microservices run contacts add --first-name "John" --last-name "Doe" --email "john@acme.com"
|
|
81
|
-
microservices run contacts list --json
|
|
82
|
-
microservices run invoices create --due 2026-04-01
|
|
83
|
-
microservices run invoices add-item --invoice INV-00001 --description "Consulting" --price 5000
|
|
84
|
-
|
|
85
|
-
# Check status
|
|
86
|
-
microservices status
|
|
87
141
|
```
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
| Name | Category | Description |
|
|
92
|
-
|------|----------|-------------|
|
|
93
|
-
| `contacts` | CRM | Contacts, companies, and relationships |
|
|
94
|
-
| `invoices` | Finance | Invoices with line items, clients, and payments |
|
|
95
|
-
| `bookkeeping` | Finance | Double-entry bookkeeping |
|
|
96
|
-
| `expenses` | Finance | Expense tracking and categorization |
|
|
97
|
-
| `crm` | CRM | Sales pipeline with stages, deals, and activities |
|
|
98
|
-
| `inventory` | Operations | Products, stock levels, and movements |
|
|
99
|
-
| `notes` | Productivity | Structured notes with tags and search |
|
|
100
|
-
| `calendar` | Productivity | Events, reminders, and scheduling |
|
|
101
|
-
| `documents` | Productivity | Document metadata and versioning |
|
|
102
|
-
| `timesheets` | HR | Time tracking per project and client |
|
|
142
|
+
auth.* teams.* billing.* notify.*
|
|
143
|
+
files.* audit.* flags.* jobs.*
|
|
144
|
+
```
|
|
103
145
|
|
|
104
146
|
## Architecture
|
|
105
147
|
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
├── microservice-invoices/
|
|
115
|
-
│ ├── data.db
|
|
116
|
-
│ └── src/
|
|
117
|
-
└── ...
|
|
118
|
-
```
|
|
148
|
+
- **Runtime**: Bun
|
|
149
|
+
- **Database**: PostgreSQL (per-service schemas, migrations built-in)
|
|
150
|
+
- **API**: Bun HTTP server (standalone mode)
|
|
151
|
+
- **MCP**: `@modelcontextprotocol/sdk` (for AI agents)
|
|
152
|
+
- **CLI**: Commander
|
|
153
|
+
- **Auth crypto**: Web Crypto API (no external crypto deps)
|
|
154
|
+
- **Stripe**: Direct `fetch()` calls (no Stripe SDK)
|
|
155
|
+
- **S3**: Manual SigV4 signing via Web Crypto
|
|
119
156
|
|
|
120
|
-
|
|
121
|
-
- Has its **own SQLite database** — no shared state
|
|
122
|
-
- Exposes a **CLI** for direct use
|
|
123
|
-
- Exposes an **MCP server** for AI agents
|
|
124
|
-
- Manages its own **migrations**
|
|
125
|
-
|
|
126
|
-
## CLI Commands
|
|
157
|
+
## Development
|
|
127
158
|
|
|
128
159
|
```bash
|
|
129
|
-
|
|
130
|
-
microservices list # List all available
|
|
131
|
-
microservices list --installed # List installed only
|
|
132
|
-
microservices search <query> # Search by name/description
|
|
133
|
-
microservices install <names...> # Install microservices
|
|
134
|
-
microservices remove <name> # Remove (preserves data)
|
|
135
|
-
microservices info <name> # Show details
|
|
136
|
-
microservices status # Show installed + DB sizes
|
|
137
|
-
microservices categories # List categories
|
|
138
|
-
microservices run <name> [args...] # Run a microservice command
|
|
139
|
-
microservices ops <name> # Show available operations
|
|
160
|
+
bun install && bun test # 127 tests, 0 failures
|
|
140
161
|
```
|
|
141
162
|
|
|
142
|
-
|
|
163
|
+
With a real database:
|
|
143
164
|
|
|
144
165
|
```bash
|
|
145
|
-
|
|
146
|
-
microservices-mcp
|
|
147
|
-
|
|
148
|
-
# Per-service MCP (after install)
|
|
149
|
-
bun run .microservices/microservice-contacts/src/mcp/index.ts
|
|
150
|
-
bun run .microservices/microservice-invoices/src/mcp/index.ts
|
|
151
|
-
```
|
|
152
|
-
|
|
153
|
-
### Hub MCP Tools
|
|
154
|
-
|
|
155
|
-
| Tool | Description |
|
|
156
|
-
|------|-------------|
|
|
157
|
-
| `search_microservices` | Search by name or keyword |
|
|
158
|
-
| `list_microservices` | List with optional category filter |
|
|
159
|
-
| `list_categories` | Categories with counts |
|
|
160
|
-
| `microservice_info` | Metadata + install status + DB info |
|
|
161
|
-
| `install_microservice` | Install to .microservices/ |
|
|
162
|
-
| `remove_microservice` | Remove (data preserved by default) |
|
|
163
|
-
| `list_installed` | Installed services with status |
|
|
164
|
-
| `run_microservice` | Execute a command on a service |
|
|
165
|
-
| `list_microservice_operations` | Discover available commands |
|
|
166
|
-
|
|
167
|
-
## Library API
|
|
168
|
-
|
|
169
|
-
```typescript
|
|
170
|
-
import {
|
|
171
|
-
MICROSERVICES,
|
|
172
|
-
searchMicroservices,
|
|
173
|
-
installMicroservice,
|
|
174
|
-
runMicroserviceCommand,
|
|
175
|
-
} from "@hasna/microservices";
|
|
176
|
-
|
|
177
|
-
// Search
|
|
178
|
-
const results = searchMicroservices("finance");
|
|
179
|
-
|
|
180
|
-
// Install
|
|
181
|
-
installMicroservice("contacts");
|
|
182
|
-
|
|
183
|
-
// Run
|
|
184
|
-
const output = await runMicroserviceCommand("contacts", ["list", "--json"]);
|
|
166
|
+
DATABASE_URL=postgres://localhost/test_ms JWT_SECRET=test-secret bun test src/integration.test.ts
|
|
185
167
|
```
|
|
186
168
|
|
|
187
169
|
## License
|
|
188
170
|
|
|
189
|
-
Apache-2.0
|
|
171
|
+
Apache-2.0 — [Hasna](https://hasna.com)
|