Skip to content

SDK for VXControl Cloud Intelligence Platform and Services

License

Notifications You must be signed in to change notification settings

vxcontrol/cloud

Repository files navigation

VXControl Cloud SDK

Enterprise-grade Go SDK for secure integration with VXControl Cloud Intelligence Platform and Services.

🚀 Join the Community! Connect with security researchers, AI enthusiasts, and fellow ethical hackers. Get support, share insights, and stay updated with the latest PentAGI developments.

DiscordTelegram

Overview

The VXControl Cloud SDK enables developers to integrate their security tools and applications with the VXControl Cloud Intelligence Platform, providing access to advanced cybersecurity services including threat intelligence, vulnerability databases, computational resources, AI-powered troubleshooting, and automated update systems.

Key Features

  • Type-Safe API: 24 strongly-typed function patterns covering all request/response scenarios
  • Transparent Security: Automatic proof-of-work solving and end-to-end encryption
  • Performance Optimized: HTTP/2 support, connection pooling, streaming encryption
  • Enterprise Ready: Comprehensive error handling, retry logic, and production monitoring
  • License Integration: Built-in premium feature validation and tier management

Quick Start

Installation

go get github.com/vxcontrol/cloud/sdk

Basic Usage

package main import ( "context""encoding/json""log""github.com/vxcontrol/cloud/models""github.com/vxcontrol/cloud/sdk""github.com/vxcontrol/cloud/system""github.com/sirupsen/logrus" ) typeClientstruct{UpdatesCheck sdk.CallReqBytesRespBytesReportError sdk.CallReqBytesRespBytes } funcmain(){varclientClient// Configure endpointsconfigs:= []sdk.CallConfig{{Calls: []any{&client.UpdatesCheck}, Host: "update.pentagi.com", Name: "updates_check", Path: "/api/v1/updates/check", Method: sdk.CallMethodPOST, },{Calls: []any{&client.ReportError}, Host: "support.pentagi.com", Name: "error_report", Path: "/api/v1/errors/report", Method: sdk.CallMethodPOST, }, } // Initialize SDKerr:=sdk.Build(configs, sdk.WithClient("MySecTool", "1.0.0"), sdk.WithInstallationID(system.GetInstallationID()), sdk.WithLogger(sdk.WrapLogrus(logrus.StandardLogger())), sdk.WithLicenseKey("XXXX-XXXX-XXXX-XXXX"), ) iferr!=nil{log.Fatal("SDK initialization failed:", err) } // Check for updatesupdateReq:= models.CheckUpdatesRequest{InstallerVersion: "1.0.0", InstallerOS: models.OSTypeLinux, InstallerArch: models.ArchTypeAMD64, } data, _:=json.Marshal(updateReq) response, err:=client.UpdatesCheck(context.Background(), data) iferr!=nil{log.Fatal("Update check failed:", err) } varupdateResp models.CheckUpdatesResponsejson.Unmarshal(response, &updateResp) log.Printf("Available updates: %+v", updateResp.Updates) }

Architecture

graph TD A[Your Security Application] --> B[VXControl Cloud SDK] B --> C[PoW Challenge System] B --> D[Encrypted Transport Layer] D --> E[VXControl Cloud Platform] E --> F[Update Services] E --> G[Package Management] E --> H[Error Reporting & AI Support] E --> I[Threat Intelligence Hub] E --> J[Vulnerability Database] E --> K[Computational Resources] E --> L[Knowledge Base] A --> M[PentAGI] A --> N[Security Tools] A --> O[SOC Systems] A --> P[Red Team Tools] A --> Q[Custom Applications] C --> R[Memory-Hard Algorithm] C --> S[Rate Limiting] D --> T[End-to-End Encryption] D --> V[Forward Secrecy] D --> X[Ed25519 Signatures] 
Loading

Cloud Services Integration

Update Management

Keep PentAGI with automated update checking:

import"github.com/vxcontrol/cloud/models"// Check for component updatesupdateReq:= models.CheckUpdatesRequest{InstallerVersion: "1.0.0", InstallerOS: models.OSTypeLinux, InstallerArch: models.ArchTypeAMD64, Components: []models.ComponentInfo{{Component: models.ComponentTypePentagi, Status: models.ComponentStatusRunning, Version: &[]string{"1.2.0"}[0], }, }, } data, _:=json.Marshal(updateReq) response, err:=client.UpdatesCheck(ctx, data) varupdateResp models.CheckUpdatesResponsejson.Unmarshal(response, &updateResp)

Error Reporting & AI Support

Get intelligent assistance for troubleshooting:

// Report an error for analysiserrorReq:= models.SupportErrorRequest{Component: models.ComponentTypePentagi, Version: "1.0.0", OS: models.OSTypeLinux, Arch: models.ArchTypeAMD64, ErrorDetails: map[string]any{"error_type": "connection_timeout", "message": "Failed to connect to target", "context": map[string]string{"target": "192.168.1.1", "port": "443"}, }, } data, _:=json.Marshal(errorReq) response, err:=client.ReportError(ctx, data)

Package Management

Download and validate software packages:

// Get package informationpackageReq:= models.PackageInfoRequest{Component: models.ComponentTypePentagi, Version: "1.0.0", OS: models.OSTypeLinux, Arch: models.ArchTypeAMD64, } // Validate package integrity with signaturessignature:=models.SignatureValue("base64-encoded-signature") fileData, _:=os.ReadFile("package.tar.gz") iferr:=signature.ValidateData(fileData); err!=nil{log.Fatal("Package signature validation failed:", err) }

AI-Powered Troubleshooting

Interactive support with investigation capabilities:

// Create support issueissueReq:= models.SupportIssueRequest{Component: models.ComponentTypeEngine, Version: "2.0.0", OS: models.OSTypeDarwin, Arch: models.ArchTypeARM64, ErrorDetails: "Scanner fails to detect specific vulnerability patterns", Logs: []models.SupportLogs{{Component: models.ComponentTypeEngine, Logs: []string{"ERROR: Pattern matching timeout", "WARN: Memory usage high"}, }, }, } // Investigate with AI assistanceinvestigationReq:= models.SupportInvestigationRequest{IssueID: receivedIssueID, UserInput: "The scanner works fine with other patterns but fails on this specific CVE", }

Call Function Types

The SDK supports 24 function patterns to handle different request/response scenarios:

PatternRequestResponseUse Case
CallReqRespBytesNoneBytesSimple data retrieval
CallReqQueryRespBytesQuery paramsBytesFiltered data queries
CallReqWithArgsRespBytesPath argsBytesResource-specific requests
CallReqBytesRespBytesBody dataBytesData submission/processing
CallReqReaderRespReaderStreamStreamLarge file processing
CallReqReaderRespWriterStreamWriterDirect output streaming

Complete function reference

Configuration Options

Basic Configuration

err:=sdk.Build(configs, // Required: Client identificationsdk.WithClient("MyApp", "1.0.0"), // Optional: Premium featuressdk.WithLicenseKey("XXXX-XXXX-XXXX-XXXX"), // Optional: Performance tuningsdk.WithPowTimeout(30*time.Second), sdk.WithMaxRetries(3), )

Advanced Configuration

// Custom transport for proxies/certificatestransport:=sdk.DefaultTransport() transport.TLSClientConfig=&tls.Config{MinVersion: tls.VersionTLS12, // custom certificate validation } transport.Proxy=http.ProxyURL(proxyURL) // Custom structured logginglogger:=logrus.New() logger.SetLevel(logrus.InfoLevel) err:=sdk.Build(configs, sdk.WithTransport(transport), sdk.WithLogger(sdk.WrapLogrus(logger)), sdk.WithInstallationID(system.GetInstallationID()), )

Security Model

Proof-of-Work Protection

All API calls require solving computational challenges to prevent abuse and DDoS attacks. The SDK automatically:

  • Requests challenge tickets from the server
  • Solves memory-hard proof-of-work puzzles
  • Includes cryptographic signatures with requests

End-to-End Encryption

  • Session Keys: Ephemeral AES keys for each request
  • NaCL Encryption: Secure key exchange using Curve25519
  • Streaming Cipher: AES-GCM for large data transfers
  • Forward Secrecy: Cypher key rotation

Rate Limiting Integration

  • Adaptive Difficulty: PoW complexity scales with server load
  • Tier-Based Access: License validation determines API quotas
  • Intelligent Retry: Automatic backoff with server-provided timing

Error Handling

Automatic Retry Logic

// Temporary errors (automatically retried):// - Server overload (sdk.ErrBadGateway, sdk.ErrServerInternal)// - Rate limits (sdk.ErrTooManyRequests, sdk.ErrTooManyRequestsRPM)// - PoW timeouts (sdk.ErrExperimentTimeout)// Fatal errors (no retry):// - Invalid requests (sdk.ErrBadRequest, sdk.ErrForbidden)// - Missing resources (sdk.ErrNotFound)// - Long-term limits (sdk.ErrTooManyRequestsRPH, sdk.ErrTooManyRequestsRPD)

Custom Error Handling

data, err:=api.QueryThreats(ctx, []byte(threatQuery)) iferr!=nil{switch{caseerrors.Is(err, sdk.ErrTooManyRequestsRPM): // Wait and retry with exponential backofftime.Sleep(60*time.Second) caseerrors.Is(err, sdk.ErrForbidden): // Check license validity or authenticationlog.Error("access denied - verify license key") caseerrors.Is(err, sdk.ErrExperimentTimeout): // Increase PoW timeout for slower systems// Reconfigure with sdk.WithPowTimeout(60*time.Second)default: log.Error("unexpected error:", err) } }

Performance Characteristics

Benchmarks

  • License validation: ~334,000 operations/sec
  • Function generation: ~2M path templates/sec
  • Streaming encryption: ~50MB/sec throughput
  • Connection pooling: 300 connections/host, 50 total idle

Memory Usage

  • Per request: ~300 bytes (context + headers + keys)
  • Per SDK instance: ~200KB (connection pools + crypto keys)
  • PoW solving: 20-1024KB (reused across attempts)

Optimization Tips

// Reuse SDK instances across requestserr:=sdk.Build(configs, options...) // Use streaming for large datareader, err:=api.ProcessLargeDataset(ctx, dataStream, dataSize) // Configure connection pooling for high throughputtransport:=sdk.DefaultTransport() transport.MaxConnsPerHost=500sdk.WithTransport(transport)

Production Deployment

Required Configuration

// Minimum production setuperr:=sdk.Build(configs, sdk.WithClient("YourApp", version), // Required: Identificationsdk.WithLicenseKey(licenseKey), // Optional: Authenticationsdk.WithLogger(productionLogger), // Recommended: Monitoring )

Monitoring Integration

// Custom logger for metrics collectiontypeMetricsLoggerstruct{*logrus.LoggermetricsMetricsCollector } func (m*MetricsLogger) WithError(errerror) sdk.Entry{// Track error rates by typem.metrics.IncrementErrorCounter(err) returnm.Logger.WithError(err) } // Integrationlogger:=&MetricsLogger{Logger: logrus.New(), metrics: yourMetrics} sdk.WithLogger(logger)

Security Considerations

  • Certificate Validating: Validate server certificates in production
  • Proxy Support: Configure corporate proxy settings if required
  • Timeout Tuning: Adjust PoW timeouts based on hardware capabilities
  • Rate Limit Monitoring: Track API quota usage and plan capacity

Use Cases

Security Tool Integration

// Integrate update checking into security toolsfunccheckSecurityToolUpdates(components []models.ComponentInfo) error{updateReq:= models.CheckUpdatesRequest{InstallerVersion: getCurrentVersion(), InstallerOS: getCurrentOS(), InstallerArch: getCurrentArch(), Components: components, } data, _:=json.Marshal(updateReq) response, err:=client.UpdatesCheck(context.Background(), data) iferr!=nil{returnerr } varupdateResp models.CheckUpdatesResponsejson.Unmarshal(response, &updateResp) for_, update:=rangeupdateResp.Updates{ifupdate.HasUpdate{log.Printf("Update available for %s: %s -> %s", update.Stack, *update.CurrentVersion, *update.LatestVersion) } } returnnil }

Automated Error Reporting

// Integrate error reporting into application error handlingfuncreportSecurityToolError(component models.ComponentType, errerror) error{errorReq:= models.SupportErrorRequest{Component: component, Version: getComponentVersion(component), OS: getCurrentOS(), Arch: getCurrentArch(), ErrorDetails: map[string]any{"error_message": err.Error(), "stack_trace": getStackTrace(), "context": getCurrentContext(), }, } data, _:=json.Marshal(errorReq) _, reportErr:=client.ReportError(context.Background(), data) returnreportErr }

Package Integrity Validation

// Validate downloaded packages before installationfuncvalidatePackageIntegrity(packagePath, signatureStrstring) error{signature:=models.SignatureValue(signatureStr) // Validate file signatureiferr:=signature.ValidateFile(packagePath); err!=nil{returnfmt.Errorf("package signature validation failed: %w", err) } log.Println("Package integrity verified successfully") returnnil } // Validate data integrity in memoryfuncvalidateDataIntegrity(data []byte, signatureStrstring) error{signature:=models.SignatureValue(signatureStr) iferr:=signature.ValidateData(data); err!=nil{returnfmt.Errorf("data signature validation failed: %w", err) } returnnil }

Advanced Features

Multiple Service Endpoints

// Connect to different service clusterstypeFullClientstruct{UpdatesCheck sdk.CallReqBytesRespBytesErrorReport sdk.CallReqBytesRespBytesPackageInfo sdk.CallReqBytesRespBytesSupportIssue sdk.CallReqBytesRespBytes } configs:= []sdk.CallConfig{{Calls: []any{&client.UpdatesCheck}, Host: "update.pentagi.com", Name: "check_updates", Path: "/api/v1/updates/check", Method: sdk.CallMethodPOST, },{Calls: []any{&client.ErrorReport}, Host: "support.pentagi.com", Name: "error_report", Path: "/api/v1/errors/report", Method: sdk.CallMethodPOST, },{Calls: []any{&client.PackageInfo}, Host: "update.pentagi.com", Name: "package_info", Path: "/api/v1/packages/info", Method: sdk.CallMethodPOST, }, }

Timeout and Retry Configuration

// Configure timeouts for different operation typeserr:=sdk.Build(configs, sdk.WithPowTimeout(30*time.Second), // For slower systems (max 60s, default 10s)sdk.WithMaxRetries(5), // For rate limiting and network issuessdk.WithTransport(customTransport), // Custom HTTP configuration ) // Per-request timeoutsctx, cancel:=context.WithTimeout(context.Background(), 2*time.Minute) defercancel() response, err:=client.UpdatesCheck(ctx, requestData)

Error Reference

ErrorTypeRetryDescription
sdk.ErrBadGatewayTemporaryYes (3s)Server maintenance/overload
sdk.ErrTooManyRequestsRPMTemporaryYes (server-defined)Rate limit exceeded
sdk.ErrExperimentTimeoutTemporaryYes (10s)PoW solving timeout
sdk.ErrForbiddenFatalNoInvalid license or authentication
sdk.ErrBadRequestFatalNoInvalid request format
sdk.ErrNotFoundFatalNoUnknown endpoint or resource

Available Models

The SDK provides strongly-typed models for all API interactions:

Component Management

  • ComponentType: pentagi, scraper, langfuse-worker, langfuse-web, grafana, otelcol, worker, installer, engine
  • ComponentStatus: unused, connected, installed, running
  • ProductStack: pentagi, langfuse, observability, worker, installer, engine
  • OSType: windows, linux, darwin
  • ArchType: amd64, arm64

Update Service Models

  • CheckUpdatesRequest / CheckUpdatesResponse: Check for component updates
  • ComponentInfo: Information about installed components
  • UpdateInfo: Available update details with changelog

Package Service Models

  • PackageInfoRequest / PackageInfoResponse: Get package metadata
  • DownloadPackageRequest: Request package downloads
  • SignatureValue: Cryptographic signature validation

Support Service Models

  • SupportErrorRequest / SupportErrorResponse: Automated error reporting
  • SupportIssueRequest / SupportIssueResponse: Manual issue creation with AI
  • SupportLogs: Component log collection
  • SupportInvestigationRequest / SupportInvestigationResponse: AI-powered troubleshooting

System Utilities

  • system.GetInstallationID(): Generates stable, machine-specific UUID for installation tracking

Service Tiers

Free Tier

  • Basic error reporting: Automated error submission
  • Package validation: Ed25519 signature verification
  • Rate limiting: Standard PoW difficulty

Professional Tier

  • AI troubleshooting: x5 investigation sessions/day
  • Package downloads: Access to all packages
  • Rate limiting: Reduced PoW difficulty

Enterprise Tier

  • Advanced AI troubleshooting: x50 investigation sessions/day
  • Custom integrations: Specialized endpoints and workflows
  • Priority processing: Minimal PoW difficulty and fast-track handling

Future Roadmap

The VXControl Cloud Platform is actively expanding. Future releases may include:

  • Threat Intelligence Services: IOC/IOA database access and threat analysis
  • Vulnerability Assessment: CVE database integration and security scanning
  • Computational Resources: Cloud-based intensive task processing
  • Advanced Analytics: Security metrics and reporting dashboards
  • Custom Workflows: Specialized security automation pipelines

Note: These features are in development and not yet available in the current SDK version.

Contributing

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'feat: add amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

Support

License and Terms

SDK License

Copyright (c) 2025 VXControl LLC. All rights reserved.

The SDK code is licensed under GNU Affero General Public License v3.0 (AGPL-3.0) with specific exceptions:

Open Source Use:

  • Free for open source projects under AGPL-3.0 terms
  • Academic research and education
  • Non-commercial projects

Commercial Use:

  • Commercial/proprietary use requires a separate license
  • Enterprise licenses available - Contact [email protected]

Special Exception:

  • Official PentAGI project has a specific licensing exception - see LICENSE for details.

Cloud Services Terms

⚠️Important: Using VXControl Cloud Services requires compliance with additional terms.

The SDK provides access to sensitive cybersecurity data, threat intelligence, vulnerability information, and AI-powered assistance. Use of these cloud services and obtained data is governed by our Terms of Service.

Cloud services may ONLY be used for:

  • ✅ Defensive cybersecurity and authorized security testing
  • ✅ Academic research and education in controlled environments
  • ✅ Incident response and compliance assessment
  • Prohibited: Unauthorized access, malicious activities, or illegal purposes

📋 Before using cloud services, read:TERMS_OF_SERVICE.md

Contact

For licensing questions: [email protected]
For Terms of Service violations: [email protected] (Subject: "Cloud Services Terms")

About

SDK for VXControl Cloud Intelligence Platform and Services

Resources

License

Contributing

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages