Skip to content

ol-s-cloud/circle-core

Repository files navigation

Circle Core

Core framework and infrastructure for the Circle Core ecosystem. Provides a foundation of security, infrastructure, and development tools for building secure, scalable applications.

Project Status

Project Status Security Focus Sprint Test Coverage

Project Documentation:

Overview

Circle Core is a comprehensive platform for building, deploying, and managing secure applications. It provides:

  • Security First: Built-in security features including encryption, authentication, and audit logging
  • Extensible Architecture: Designed to be extended for specific projects and platforms
  • Cloud Ready: Infrastructure components for major cloud providers
  • Developer Friendly: CLI tools, documentation, and APIs for a smooth developer experience

Structure

β”œβ”€β”€ src/                  # Source code
β”‚   β”œβ”€β”€ core/             # Core components
β”‚   β”‚   β”œβ”€β”€ auth/         # Authentication & authorization
β”‚   β”‚   β”œβ”€β”€ encryption/   # Encryption services
β”‚   β”‚   β”œβ”€β”€ audit/        # Audit logging
β”‚   β”‚   └── validation/   # Validation services
β”‚   β”œβ”€β”€ infrastructure/   # Infrastructure components
β”‚   β”‚   β”œβ”€β”€ storage/      # Storage mechanisms
β”‚   β”‚   β”œβ”€β”€ registry/     # Package registry
β”‚   β”‚   └── licensing/    # License management
β”‚   └── security/         # Security-specific modules
β”‚       β”œβ”€β”€ dependency_scanner/ # Dependency scanning
β”‚       β”œβ”€β”€ secrets_manager/    # Secrets management
β”‚       └── security_monitor/   # Security monitoring
β”œβ”€β”€ tests/                # Test suite
β”‚   β”œβ”€β”€ unit/             # Unit tests
β”‚   β”œβ”€β”€ integration/      # Integration tests
β”‚   └── security/         # Security-specific tests
β”œβ”€β”€ docs/                 # Documentation
β”‚   β”œβ”€β”€ architecture/     # Architecture documentation
β”‚   β”œβ”€β”€ security/         # Security documentation
β”‚   β”œβ”€β”€ api/              # API documentation
β”‚   └── guides/           # User and developer guides
└── deployment/           # Deployment configurations
    β”œβ”€β”€ docker/           # Docker configurations
    └── kubernetes/       # Kubernetes resources

Installation

# Install the core framework
pip install circle-core

# Install with development dependencies
pip install circle-core[dev]

# Install with test dependencies
pip install circle-core[test]

# Install with documentation dependencies
pip install circle-core[docs]

Key Features

Security Components

  • Authentication: Secure user authentication with MFA, Argon2 hashing, and role-based access
  • Encryption: Data protection with key rotation, multiple algorithms, and envelope encryption
  • Audit Logging: Tamper-evident logging with cryptographic hash chains and integrity verification
  • Security Scanning: Automatic scanning for vulnerabilities in dependencies

Infrastructure Components

  • Storage: Unified storage interface with transparent encryption and multiple backends
  • Package Registry: Package management with versioning, validation, and dependency resolution
  • Licensing: Feature-based license validation and management system
  • Configuration: Coming soon - Configuration management and validation

Getting Started

Security Example

from circle_core.security import dependency_scanner

# Initialize the security scanner
scanner = dependency_scanner.Scanner()

# Scan your project dependencies
results = scanner.scan_requirements_file("requirements.txt")

# Check for vulnerabilities
for result in results:
    if result["vulnerabilities"]:
        print(f"Vulnerabilities found in {result['package']}!")

Storage Example

from circle_core.infrastructure.storage import StorageManager

# Create a storage manager
storage_manager = StorageManager()

# Store an object
metadata = storage_manager.put_object(
    "my_file.txt",
    data="Hello, world!",
    content_type="text/plain"
)

# Retrieve the object
obj = storage_manager.get_object("my_file.txt")
print(obj.data)  # Outputs: Hello, world!

Registry Example

from circle_core.infrastructure.registry import CoreRegistryManager

# Create a registry manager
registry_manager = CoreRegistryManager()
registry_manager.initialize()

# Publish a package
registry_manager.publish_package(
    "example-package",
    "1.0.0",
    package_data,
    package_metadata
)

# Search for packages
results = registry_manager.search_packages("example")

# Download a package
package_data = registry_manager.download_package("example-package", "1.0.0")

Licensing Example

from circle_core.infrastructure.licensing import (
    has_feature, verify_feature, register_license,
    FEATURE_STORAGE, FEATURE_ENCRYPTION
)

# Register a license
with open("license_file.txt", "r") as f:
    license_data = f.read()
register_license(license_data)

# Check if a feature is available
if has_feature(FEATURE_STORAGE):
    print("Storage feature is available")

# Verify feature access (raises exception if not available)
try:
    verify_feature(FEATURE_ENCRYPTION)
    print("Encryption feature is available")
except LicenseFeatureNotAvailableError:
    print("Encryption feature not available in current license")

See the examples directory for more detailed examples.

Documentation

Comprehensive documentation is available in the docs/ directory.

Development

# Clone the repository
git clone https://github.com/ol-s-cloud/circle-core.git
cd circle-core

# Install development dependencies
pip install -e ".[dev,test]"

# Run tests
pytest

Project Documentation

  • Project Status - Overall project progress and component status
  • Gap Analysis - Detailed comparison of current state vs. target architecture
  • Sprint Status - Current sprint goals, achievements, and metrics
  • Audit Framework - Testing and audit guidelines for quality assurance

License

Proprietary - All Rights Reserved Β© Circle Data & IT Solutions Ltd

About

Core framework and infrastructure for Circle Core ecosystem

Resources

Contributing

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors