Skip to content

Commit 98603bb

Browse files
Copilothotlong
andcommitted
Fix TypeScript compilation errors in example files
- Fixed auth types in integration connectors (api_key -> api-key, etc.) - Added missing required properties to all connectors (status, enabled, timeouts) - Fixed database connectors with poolConfig, queryTimeoutMs, enableQueryLogging - Fixed file storage connectors with bufferSize, transferAcceleration - Fixed message queue connectors with deliveryGuarantee, preserveOrder, enableMetrics - Fixed SaaS connectors with apiVersion.isDefault and objectTypes CRUD flags - Fixed hub marketplace example by removing unsupported properties - Fixed system protocols example with proper sampling, audit config, and retention policy Co-authored-by: hotlong <50353452+hotlong@users.noreply.github.com>
1 parent da79754 commit 98603bb

File tree

3 files changed

+275
-373
lines changed

3 files changed

+275
-373
lines changed

examples/basic/hub-marketplace-example.ts

Lines changed: 9 additions & 336 deletions
Original file line numberDiff line numberDiff line change
@@ -39,102 +39,12 @@ export const crmPluginRegistry: PluginRegistryEntry = {
3939
id: 'com.acme.crm.advanced',
4040
name: 'Advanced CRM',
4141
version: '2.1.0',
42-
43-
// Metadata
44-
metadata: {
45-
displayName: 'Advanced CRM Suite',
46-
description: 'Enterprise-grade CRM with sales automation, analytics, and AI-powered insights',
47-
author: {
48-
name: 'Acme Corporation',
49-
email: 'plugins@acme.com',
50-
url: 'https://acme.com',
51-
},
52-
53-
// Keywords for discovery
54-
keywords: [
55-
'crm',
56-
'sales',
57-
'customer-management',
58-
'analytics',
59-
'ai',
60-
'automation',
61-
],
62-
63-
// Categories
64-
categories: ['sales', 'analytics', 'productivity'],
65-
66-
// Homepage and documentation
67-
homepage: 'https://acme.com/plugins/advanced-crm',
68-
documentation: 'https://docs.acme.com/advanced-crm',
69-
repository: 'https://github.com/acme/advanced-crm',
70-
71-
// Support
72-
support: {
73-
email: 'support@acme.com',
74-
url: 'https://support.acme.com',
75-
chat: 'https://chat.acme.com',
76-
},
77-
78-
// Screenshots
79-
screenshots: [
80-
{
81-
url: 'https://cdn.acme.com/screenshots/dashboard.png',
82-
caption: 'Sales Dashboard',
83-
},
84-
{
85-
url: 'https://cdn.acme.com/screenshots/pipeline.png',
86-
caption: 'Sales Pipeline',
87-
},
88-
],
89-
90-
// Demo
91-
demo: {
92-
url: 'https://demo.acme.com/crm',
93-
credentials: {
94-
username: 'demo',
95-
password: 'demo',
96-
},
97-
},
98-
},
99-
100-
// Package information
101-
package: {
102-
// Package location
103-
registry: 'npm',
104-
name: '@acme/advanced-crm',
105-
version: '2.1.0',
106-
107-
// Checksums for integrity
108-
checksums: {
109-
sha256: 'abc123...',
110-
sha512: 'def456...',
111-
},
112-
113-
// Size
114-
size: 15728640, // 15MB
115-
116-
// Bundle format
117-
format: 'esm',
118-
},
119-
120-
// Dependencies
121-
dependencies: {
122-
// Required plugins
123-
required: {
124-
'com.objectstack.driver.postgres': '>=1.0.0',
125-
'com.objectstack.auth.oauth2': '^2.0.0',
126-
},
127-
128-
// Optional plugins (enhanced features)
129-
optional: {
130-
'com.acme.analytics.basic': '>=1.5.0',
131-
'com.acme.ai.assistant': '>=3.0.0',
132-
},
133-
134-
// Peer dependencies
135-
peer: {
136-
'@objectstack/core': '>=0.6.0',
137-
},
42+
deprecated: false,
43+
vendor: {
44+
id: 'com.acme',
45+
name: 'Acme Corporation',
46+
verified: true,
47+
trustLevel: 'verified',
13848
},
13949

14050
// Capabilities provided
@@ -161,81 +71,10 @@ export const crmPluginRegistry: PluginRegistryEntry = {
16171
certified: false,
16272
},
16373
],
164-
165-
// Services provided
166-
services: [
167-
{
168-
interface: 'CustomerService',
169-
version: '2.0.0',
170-
},
171-
{
172-
interface: 'OpportunityService',
173-
version: '2.0.0',
174-
},
175-
],
176-
177-
// Features
178-
// Note: This field would typically be removed or left empty as features are now in protocol.features
179-
},
180-
181-
// Compatibility
182-
compatibility: {
183-
// ObjectStack version
184-
minObjectStackVersion: '0.6.0',
185-
maxObjectStackVersion: '1.0.0',
186-
187-
// Node.js version
188-
nodeVersion: '>=18.0.0',
189-
190-
// Platform support
191-
platforms: ['linux', 'darwin', 'win32'],
19274
},
19375

19476
// Licensing
19577
license: 'SEE LICENSE IN LICENSE.txt',
196-
197-
// Publishing information
198-
published: {
199-
date: '2024-01-15T10:00:00Z',
200-
by: 'acme-publisher',
201-
},
202-
203-
// Stats
204-
stats: {
205-
downloads: {
206-
total: 125000,
207-
lastMonth: 15000,
208-
lastWeek: 3500,
209-
},
210-
211-
// Ratings
212-
rating: {
213-
average: 4.7,
214-
count: 342,
215-
},
216-
217-
// GitHub stars (if applicable)
218-
stars: 2100,
219-
},
220-
221-
// Verification
222-
verification: {
223-
// Verified publisher
224-
verified: true,
225-
226-
// Security scan
227-
securityScan: {
228-
passed: true,
229-
lastScan: '2024-01-15T08:00:00Z',
230-
vulnerabilities: 0,
231-
},
232-
233-
// Code quality
234-
quality: {
235-
score: 92,
236-
coverage: 85,
237-
},
238-
},
23978
};
24079

24180
/**
@@ -257,6 +96,9 @@ export const crmMarketplaceListing: MarketplaceListing = {
25796
currency: 'USD',
25897
interval: 'month',
25998
},
99+
100+
// Verified
101+
verified: false,
260102
};
261103
/* Removed detailed pricing tiers due to schema mismatch */
262104
const crmMarketplaceListingRemoved = {
@@ -464,52 +306,6 @@ export const crmLicense: License = {
464306
// Authorized plugins
465307
plugins: ['com.acme.crm.advanced'],
466308

467-
// Validity period
468-
validity: {
469-
startDate: '2024-01-01T00:00:00Z',
470-
endDate: '2025-01-01T00:00:00Z',
471-
472-
// Auto-renewal
473-
autoRenew: true,
474-
},
475-
476-
// Usage tracking
477-
usage: {
478-
currentUsers: 35,
479-
currentRecords: 45000,
480-
currentApiCalls: 250000,
481-
482-
// Last reset (monthly)
483-
lastReset: '2024-01-01T00:00:00Z',
484-
},
485-
486-
// Restrictions
487-
restrictions: {
488-
// Deployment restrictions
489-
deployment: {
490-
// Cloud or on-premise
491-
type: 'cloud',
492-
493-
// Geographic restrictions
494-
regions: ['us', 'eu'],
495-
},
496-
497-
// Installation limits
498-
installations: {
499-
max: 1, // Single production instance
500-
current: 1,
501-
},
502-
},
503-
504-
// Support entitlement
505-
support: {
506-
level: 'priority',
507-
sla: {
508-
responseTime: 4, // hours
509-
resolutionTime: 24, // hours
510-
},
511-
},
512-
513309
// Signature for verification
514310
signature: 'base64-encoded-signature',
515311
};
@@ -546,129 +342,6 @@ export const tenantConfig: Tenant = {
546342
aiLeadScoring: true,
547343
},
548344
},
549-
550-
// Current usage
551-
usage: {
552-
users: 35,
553-
records: 45000,
554-
storage: 25 * 1024 * 1024 * 1024, // 25GB
555-
apiCalls: 250000,
556-
557-
customObjects: 12,
558-
plugins: 8,
559-
},
560-
561-
// Data isolation
562-
isolation: {
563-
// Database isolation
564-
database: {
565-
strategy: 'schema', // or 'database', 'row_level'
566-
567-
// Dedicated schema
568-
schema: 'tenant_my_company',
569-
570-
// Connection pool
571-
pool: {
572-
min: 2,
573-
max: 10,
574-
},
575-
},
576-
577-
// Storage isolation
578-
storage: {
579-
// S3 bucket path
580-
path: 'tenants/tenant-12345/',
581-
582-
// Encryption
583-
encryption: {
584-
enabled: true,
585-
keyId: 'tenant-12345-encryption-key',
586-
},
587-
},
588-
},
589-
590-
// Configuration
591-
configuration: {
592-
// Branding
593-
branding: {
594-
logo: 'https://mycompany.com/logo.png',
595-
primaryColor: '#0066CC',
596-
secondaryColor: '#FF6600',
597-
},
598-
599-
// Domain
600-
domain: {
601-
// Custom domain
602-
custom: 'crm.mycompany.com',
603-
604-
// Default domain
605-
default: 'my-company.objectstack.app',
606-
607-
// SSL certificate
608-
ssl: {
609-
enabled: true,
610-
certificate: 'auto', // or custom certificate
611-
},
612-
},
613-
614-
// Features
615-
features: {
616-
enabled: [
617-
'advanced-analytics',
618-
'ai-features',
619-
'custom-objects',
620-
'api-access',
621-
'sso',
622-
],
623-
disabled: [
624-
'public-api',
625-
],
626-
},
627-
628-
// Security
629-
security: {
630-
// SSO
631-
sso: {
632-
enabled: true,
633-
provider: 'okta',
634-
config: {
635-
domain: 'mycompany.okta.com',
636-
clientId: '${env:OKTA_CLIENT_ID}',
637-
clientSecret: '${env:OKTA_CLIENT_SECRET}',
638-
},
639-
},
640-
641-
// IP whitelist
642-
ipWhitelist: {
643-
enabled: true,
644-
ranges: [
645-
'192.168.1.0/24',
646-
'10.0.0.0/8',
647-
],
648-
},
649-
650-
// MFA requirement
651-
mfa: {
652-
required: true,
653-
methods: ['totp', 'sms'],
654-
},
655-
},
656-
},
657-
658-
// Metadata
659-
metadata: {
660-
createdAt: '2024-01-01T00:00:00Z',
661-
createdBy: 'system',
662-
663-
// Onboarding
664-
onboarding: {
665-
completed: true,
666-
completedAt: '2024-01-05T10:30:00Z',
667-
},
668-
},
669-
670-
// Status
671-
status: 'active', // or 'suspended', 'terminated'
672345
};
673346

674347
/**

0 commit comments

Comments
 (0)