Jac-Scale Release Notes#
This document provides a summary of new features, improvements, and bug fixes in each version of Jac-Scale. For details on changes that might require updates to your existing code, please refer to the Breaking Changes page.
jac-scale 0.2.12 (Unreleased)#
- Dev Mode: Named endpoints in Swagger docs: Dev mode (
jac start --dev) now registers individual named endpoints (e.g./walker/read_todos) instead of generic catch-all routes (/walker/{walker_name}), so Swagger UI shows all walker/function names. HMR still works - routes are refreshed automatically on file changes.
jac-scale 0.2.11 (Latest Release)#
- Fix: Sandbox status returns stale RUNNING for dead pods:
KubernetesSandbox.status()was returning the cached registry state (oftenRUNNING) whenread_namespaced_pod_status()threw an exception (pod deleted or unreachable). This caused callers to believe the sandbox was still alive, preventing recovery. Now returnsSTOPPEDwhen the pod query fails so dead pods are detected immediately. - Fix: Admin portal build fails from PyPI install:
jac.tomlandstyles/*.csswere excluded from the wheel becausepyproject.tomlpackage-data only included*.jacfiles. The admin portal'sjac buildcommand needs these files to discover the project config and generate Tailwind CSS output.
jac-scale 0.2.10#
- Dev Mode: API Docs accessible from client URL: In dev mode (
jac start --dev), the FastAPI Swagger UI (/docs) and OpenAPI spec (/openapi.json) are now proxied through the Vite dev server, so you can browse your API docs at the same URL as your app without switching ports. - Security: FastAPI docs disabled in production:
/docs,/redoc, and/openapi.jsonare no longer exposed in production. They are only available in dev mode. - Health check endpoint: Added
GET /healthzfor liveness checks. Returns{"status": "ok"}with no authentication required. Useful for Kubernetes probes and monitoring. - Warm Pool TTL: Added
warm_pool_ttlconfig to control warm pod lifetime independently from sandboxttl_seconds. Default0means warm pods live indefinitely until claimed, preventing the pool from emptying after the sandbox TTL expires.
jac-scale 0.2.9#
- Ingress Rate Limiting (DDoS Protection): Added configurable NGINX rate limiting to the Kubernetes ingress. Limits sustained requests per second, burst headroom, and concurrent connections per client IP using the leaky bucket algorithm. Returns
429 Too Many Requestswhen limits are exceeded. Configurable via[plugins.scale.kubernetes]injac.toml:ingress_limit_rps(default: 20),ingress_limit_burst_multiplier(default: 5),ingress_limit_connections(default: 20). - Cookie-Based Sticky Sessions (optional): Added opt-in session affinity via NGINX cookie (
route). When enabled, every user is pinned to the same pod regardless of IP changes (mobile, NAT, proxies). Cookie never expires in the browser. On pod failure NGINX automatically re-routes and rewrites the cookie. Enabled by default. Disable viaingress_session_affinity = falsein[plugins.scale.kubernetes]. - Performance: MongoBackend.batch_get(): New
batch_get(ids)usesfind({_id: {$in: [...]}})so edge traversals hit MongoDB with 2-3 queries instead of one per anchor. On cold starts with 100 edges this cuts 201 round-trips down to 3. - Extensible Deployment Targets and Image Registries:
DeploymentTargetFactoryandImageRegistryFactorynow support plugin-registered targets viaregister(name, factory). External packages can register custom deployment targets (e.g.DeploymentTargetFactory.register("enterprise-kubernetes", my_factory)) and image registries without modifying jac-scale. Custom targets load their config from[plugins.scale.<target-name>]injac.toml. - PWA/Web Target Integration Test: Added test to verify
jac start --client pwauses jac-scale's FastAPI server when installed (checks/docsendpoint availability). - Fix: HPA config ignored on redeployment:
create_hpasilently swallowed 409 Conflict errors when the HPA already existed, so updatedmin_replicas,max_replicas, andcpu_utilization_targetvalues injac.tomlwere never applied on subsequent deploys. Changed to a replace-first, create-on-404 pattern consistent with how Ingress and ConfigMap resources are managed, ensuring HPA configuration is always kept in sync withjac.toml. - Sandbox Security Hardening: Hardened K8s sandbox pods by dropping all Linux capabilities (
drop: ALL), enabling seccompRuntimeDefaultprofile (~44 dangerous syscalls blocked), disabling service account token automounting (prevents K8s API access from inside sandboxes), and adding a configurable/appemptyDir size limit (app_storage_limit, default 1Gi) to prevent node disk exhaustion. Applied consistently to both on-demand and warm pool pods. The sandbox base Dockerfile now creates a dedicated non-root user (jac, UID 1000) and installs Bun system-wide so it's accessible under the security context.
jac-scale 0.2.8#
- 1 small changes.
jac-scale 0.2.7#
- Apple & GitHub SSO Support: Added Apple Sign In and GitHub as SSO providers via
fastapi-sso. Unified the SSO callback into a single endpoint per platform (/sso/{platform}/callback) that auto-registers new users or logs in existing ones. Initiation endpoints remain separate (/sso/{platform}/login,/sso/{platform}/register). SSOhostconfig simplified to just the base URL (e.g.,http://localhost:8000). Configure via[plugins.scale.sso.apple]and[plugins.scale.sso.github]injac.toml. - Kubernetes Security Hardening: Added container-level security contexts (
allowPrivilegeEscalation: false,drop: ALL,readOnlyRootFilesystem,seccompProfile: RuntimeDefault), dedicatedServiceAccountper workload, component-specific NetworkPolicies enforcing proper isolation (databases only accept traffic from main app + dashboards, monitoring components only accept ingress from trusted internal sources), andpod-security.kubernetes.io/enforce: baselinenamespace labels. - Scheduler Code Quality Cleanup: Extracted shared
_authenticate_request()and_validate_trigger()helpers to remove duplicated auth/validation logic across/jobsendpoints. Fixedget_job()to query by ID directly instead of loading all jobs. Replaced deprecateddatetime.utcnow()withdatetime.now(timezone.utc). Persistedis_walkerin job data to avoid redundant introspector lookups. Replaced silent exception swallowing with debug logging. - Metrics Endpoint Fix & Prometheus Auth: Fixed
/metrics500 error (TransportResponseis a dataclass, not Pydantic - replaced.model_dump()withdataclasses.asdict()). Added HTTP Basic Auth support so Prometheus can scrape/metricsviabasic_authinprometheus.yml. - Hash-based dirty checking for MongoDB/Redis persistence: Replaced
is_updatedflag with hash-based change detection at sync time. Read-only requests no longer trigger any database writes. All mutation types, including in-place mutations (list.append(),dict[k]=v,set.add(), nested objects), are automatically detected and persisted. - Client-Side Error Reporting Endpoint: Added
POST /cl/__error__endpoint toJacAPIServerCorefor receiving client-side JavaScript errors. Errors are logged via thejaclang.client_errorslogger and printed to the dev console with stack traces for visibility. - Source-Mapped Error Stack Traces: Client error stack traces received at
/cl/__error__are now resolved from bundled JS locations to original.jacfile paths and exact line numbers via the centralizedSourceMapperwith two-layer resolution. - Client Error Rate Limiting: The
/cl/__error__endpoint now deduplicates identical error messages (10s window) and caps at 20 errors per minute to prevent log flooding from render loops or repeated failures. - Add: LLM Telemetry Admin Dashboard: Added a
TelemetryStorebackend that subscribes to byllm's agent callback and litellm's per-call logger, grouping all LLM calls within a single agent invocation into one trace (tokens, cost, latency, user prompt, agent response). Traces are served via four new admin REST endpoints (/admin/llm/telemetry/summary,/traces,/traces/{id},/filters) and visualized in the admin UI with a metrics overview page and a paginated, filterable trace detail view. - Fix: Nginx error when domain is set before
--enable-tls: Ingress now always deploys with a wildcard rule; the domainhostis only applied when--enable-tlsis run, fixing the app being unreachable via IP/NLB whendomainwas set injac.tomlbefore initial deployment. - Sandbox System: Isolated preview environments with Docker and Kubernetes backends, warm pod pool, routing proxy with WebSocket/HMR, and path-safe file operations. Configure via
[plugins.scale.sandbox]injac.toml. - Request-Scoped L1 Memory Cache: Made the L1 (in-memory) cache request-scoped using
ContextVar, ensuring each request gets an isolated cache that is automatically cleared after execution, preventing stale data, memory leaks, and cross-request interference while maintaining backward compatibility for CLI and tests.
jac-scale 0.2.6#
- Domain & TLS support (
--enable-tls): Added custom domain name routing and automatic HTTPS via cert-manager + Let's Encrypt. Setdomaininjac.toml, deploy normally, point your CNAME to the NLB, then runjac start app.jac --scale --enable-tlsto enable HTTPS without a full redeploy. cert-manager is installed automatically and certificates are renewed automatically. Configurable viadomainandcert_manager_emailin[plugins.scale.kubernetes].
jac-scale 0.2.5#
- Fix: Walker Route OpenAPI Parameter Naming: Fixed inconsistency where walker routes with node parameters used
{nd}in URL paths but declarednodein OpenAPI schema, causing FastAPI validation errors ("Field required"for parameternode). The OpenAPI schema now correctly usesndto match the actual path variable and function parameter. This fixes requests to/walker/{walker_name}/{node_id}endpoints. Note:nodeis a reserved Jac keyword, sondis used as the parameter name throughout. - Fix: K8s deployment time regression: NGINX Ingress controller now starts in parallel with databases/monitoring, restoring test runtimes.
- NGINX Ingress Controller: Replaced individual NodePort services with a single NGINX Ingress controller. All services are now ClusterIP, accessible via path-based routing through
ingress_node_port(default:30080):/app,/grafana,/cache-dashboard/,/db-dashboard. - Fix: Ingress routes now update correctly on re-deploy: Switched from
patchtoreplacefor Ingress resources so toggling monitoring or dashboards off actually removes the old routes instead of leaving them in place. - Security: RedisInsight always requires authentication: The
/cache-dashboardroute now always enforces HTTP basic-auth whenredis_dashboard = true. Credentials are hashed with bcrypt (replaces the previous SHA1 scheme). The auth Secret is also cleaned up automatically whenredis_dashboardis disabled. - Fix: Redis Insight dashboard 404 and nginx-auth ConfigMap not updating on re-deploy.
- Fix: Parser Strictness Compliance: Moved docstrings before signatures in
kubernetes_utils.impl.jacand converted nested function docstring to comment inapi.cl.jacto comply with the stricter RD parser. - [Internal] Refactor: Extract graph visualizer HTML into a standalone template file.
- User storage now supports both MongoDB and SQLite: User authentication and management automatically uses SQLite when MongoDB is not configured, maintaining full backward compatibility with existing installations.
- Fix: Include
redis.conf.templatein package distribution: FixedFileNotFoundErrorduring Redis deployment when jac-scale is installed via pip (non-editable install). Theredis.conf.templatefile is now correctly included in the wheel distribution viapackage-dataconfiguration inpyproject.toml.
jac-scale 0.2.4#
- Automatic Port Fallback: When starting the server with
jac start, if the specified port is already in use, the server now automatically finds and uses the next available port instead of crashing with "Address already in use". A warning message displays when using an alternative port. Supports up to 10 port retries with cross-platform compatibility (Linux and Windows). - [fix]Fix for internet facing aws load balancer
- 1 Minor refactor/change.
- Scheduling Support: Added static and dynamic task scheduling for walkers and functions via
@schedule(trigger=...). Static schedules (INTERVAL/CRON/DATE) start automatically at server startup; dynamic schedules (DYNAMIC) are managed via a new/jobsREST API (create, list, get, update, delete) with MongoDB persistence. Scheduled items are excluded from standard walker/function endpoints. A__system__user executes all scheduled tasks; configure via[plugins.scale.scheduler]injac.toml. - Fix: Fix for internet-facing AWS load balancer
- [Internal] Convert username and password for redis and mongodb to secret when injecting to pod deployment
- 3 Minor refactors/changes.
- update jac-scale plugin documentation with missing features
-
APP_NAME, K8s_NAMESPACE, DOCKER_USERNAME, DOCKER_PASSWORD are no longer read from environment variables and must be configured via `jac.toml.
-
Component-Level Destroy:
jac destroy app.jac --component <name>now supports removing individual Kubernetes components (application,database,cache,monitoring,dashboard) without tearing down the entire deployment. - Redis Cache Configuration with TTL Support: Added configurable eviction policies and TTL support for Kubernetes Redis deployments via
jac.toml(redis_max_memory,redis_eviction_policy,redis_eviction_samples,redis_default_ttl,redis_enable_keyspace_notifications); ConfigMap-based with automatic pod restart on change. Anchors stored in Redis L2 cache now respect theredis_default_ttlsetting and will automatically expire after the configured duration (default: 0 = no expiration). - 1 small refactor/change.
- Fix: Redis deployment annotation null guard: Fixed
'NoneType' object has no attribute 'get'crash duringjac start --scalewhen an existing Redis deployment has no annotations. Kubernetes returnsNonefor the annotations field when none exist, so the config-hash check now guards against this.
jac-scale 0.2.3#
- Admin API Endpoints: REST API for administrative operations at
/admin/*including user management, SSO provider listing, and configuration access. - Admin-Only Metrics Endpoint: The
/metricsPrometheus scrape endpoint now requires admin authentication. Unauthenticated requests receive a 403 Forbidden response. This prevents unauthorized access to server performance data. - Admin Metrics Dashboard: Added
/admin/metricsendpoint that returns parsed Prometheus metrics as structured JSON with summary statistics (total requests, average latency, error rate, active requests). The admin dashboard monitoring page now displays metrics in a visual dashboard with HTTP traffic breakdown, system stats (GC, memory, CPU time), and real-time counters. - Set default maximum memory limit of k8s pods from unlimited to 12Gb
- Automatically deploy Redis (RedisInsight) and MongoDB (MongoDB Dashboard) dashboards in Kubernetes when the redis_dashboard and mongodb_dashboard flags are enabled.
- Set default maximum memory limit for jaseci app pod to None (unlimited)
- 1 Minor refactor/change.
jac-scale 0.2.2#
- Data Persists Across Server Restarts: Graph nodes and edges created during a session now persist automatically in MongoDB. When you restart your
jac startserver, previously created data is restored and accessible - no manual save operations required. jac statusCommand: Newjac status app.jaccommand to check the live deployment status of all Kubernetes components (Jaseci App, Redis, MongoDB, Prometheus, Grafana). Displays a color-coded table with component health, pod readiness counts, and service URLs. Detects running, degraded, pending, restarting (crash-loop), and not-deployed states.- Resource Tagging: All Kubernetes resources created by jac-scale are now labeled with
managed: jac-scale, enabling easy auditing and identification viakubectl get all -l managed=jac-scale -A. - k8s metrics dashboard in prometheus and grafana
- Jac status command to check deployment status of each component of k8s
- Chore: Codebase Reformatted: All
.jacfiles reformatted with improvedjac format(better line-breaking, comment spacing, and ternary indentation). - Fix: Root-Level Font/Asset 404s: Added
.jac/client/dist/as a search candidate inserve_root_asset, fixing 404s for font files (.woff2,.ttf, etc.) bundled by Vite with root-relative@font-face url()paths.
jac-scale 0.2.1#
- Admin Portal: Added a built-in
/admindashboard for user management and administration. Features include user CRUD operations (list, create, edit, delete), role-based access control withadmin,moderator, anduserroles, force password reset, and SSO account management view. - Admin API Endpoints: REST API for administrative operations at
/admin/*including user management, SSO provider listing, and configuration access. - Admin Configuration: New
[plugins.scale.admin]section injac.tomlto configure admin portal settings. Environment variablesADMIN_USERNAME,ADMIN_EMAIL, andADMIN_DEFAULT_PASSWORDsupported. - Refactor:
JacSerializerremoved, useSerializer(api_mode=True):JacSerializerhas been removed fromjaclang.runtimelib.server. API serialization is now handled directly bySerializer.serialize(obj, api_mode=True)fromjaclang.runtimelib.serializer. Storage backends are unaffected; continue usingSerializer.serialize(obj, include_type=True)for round-trip persistence. Addedsocial_graph.jacfixture demonstrating native persistence withdb.find_nodes()for querying the_anchorscollection using MongoDB filters. - Internal: refactor jac-scale k8s loadbalancer/service to support other vendors
- Before deploying to the local Kubernetes cluster, check whether the required NodePorts are already in use in any namespace; if they are, throw an error.
- jac destroy command deletes non default namespace
- Fix: Code-sync pod stuck in ContainerCreating: Added preferred
podAffinityto the code-sync pod spec so it prefers scheduling on the same node as the code-server pod. Fixes RWO (ReadWriteOnce) PVC mount failures when Kubernetes schedules the two pods on different nodes. - 1 Minor refactor
- Internal: check whether redis,mongodb,grafana and prometheus are also restarted when checking deployment status
jac-scale 0.2.0#
- SSO Frontend Callback Redirect: SSO callback endpoints now support automatic redirection to frontend applications. Configure
client_auth_callback_urlinjac.tomlto redirect with token/error parameters instead of returning JSON, enabling seamless browser-based OAuth flows. - Graph Visualization Tests: Added tests for
/graphand/graph/dataendpoints.
jac-scale 0.1.11#
- Graph Visualization Endpoint (
/graph): Added a built-in/graphendpoint that serves an interactive graph visualization UI in the browser.
jac-scale 0.1.10#
- support horizontal scaling: based on average cpu usage k8s pods are horizontally scaled
- Client Build Error Diagnostics: Build errors now display formatted diagnostic output with error codes, source snippets, and quick fix suggestions instead of raw Vite/Rollup output. Uses the
jac-clientdiagnostic engine for consistent error formatting acrossjac startandjac build.
jac-scale 0.1.9#
- Refactor: Modular JacAPIServer Architecture: Split the monolithic
serve.impl.jacinto three focused impl files using mixin composition: serve.core.impl.jac: Auth, user management, JWT, API keys, server start/postinitserve.endpoints.impl.jac: Walker, function, webhook, WebSocket endpoint registrationserve.static.impl.jac: Static files, pages, client JS, graph visualization- Fix:
@restspecPath Parameters: Resolved a critical bug where using@restspecwith URL path parameters (e.g.path="/items/{item_id}") caused the server to crash on startup withCannot use 'Query' for path param 'id'. Both functions and walkers with@restspecpath templates now correctly annotate matching parameters asPath()instead ofQuery(). Mixed usage (path params alongside query params or body params) works correctly across GET and POST methods. Starlette converter syntax (e.g.{file_path:path}) is also handled. - Remove Authorization header input from Swagger UI: The
Authorizationheader is no longer exposed as a visible text input field in Swagger UI for walker, function, and API key endpoints. Authentication tokens are now read transparently from the standardAuthorizationrequest header (accessible via the lock icon), consistent with theupdate_usernameandupdate_passwordendpoints. - 1 Minor refactors/changes.
jac-scale 0.1.8#
- Internal: K8s integration tests now install jac plugins from fork PRs instead of always using main
- .jac folder is excluded when creating the zip folder that is uploaded into jaseci deployment pods.Fasten up deployment
- Fix:
jac startStartup Banner: Server now displays the startup banner (URLs, network IPs, mode info) correctly viaon_readycallback, consistent with stdlib server behavior. - Various refactors
- PWA Build Detection: Server startup now detects existing PWA builds (via
manifest.json) and skips redundant client bundling. The/static/client.jsendpoint serves Vite-hashed files (client.*.js) in PWA mode. - Prometheus Metrics Integration: Added
/metricsendpoint with HTTP request metrics, configurable via[plugins.scale.metrics]injac.toml. - Update jaseci scale k8s pipeline to support parellel test cases.
- early exit from k8s deployment if container restarted
- Direct Database Access (
kvstore): Addedkvstore()function for direct MongoDB and Redis operations without graph layer. Supports database-specific methods (MongoDB:find_one,insert_one,update_one; Redis:set_with_ttl,incr,scan_keys) with common methods (get,set,delete,exists) working across both. Import fromjac_scale.libwith URI-based connection pooling and configuration fallback (explicit URI → env vars → jac.toml). - Code refactors: Backtick escape, etc.
- Persistent Webhook API Keys: Webhook API key metadata is now stored in MongoDB (
webhook_api_keyscollection) instead of in-memory dictionaries. API keys now survive server restarts. - Native Kubernetes Secret support: New
[plugins.scale.secrets]config section. Declare secrets with${ENV_VAR}syntax, auto-resolved at deploy time into a K8s Secret withenvFrom.secretRef. - Minor Internal Refactor in Tests: Minor internal refactoring in test_direct.py to improve test structure
- fix: Return 401 instead of 500 for deleted users with valid JWT tokens.
- Docs update: return type
any->JsxElement - 1 Small Refactors
- promethius and grafana deployment: Jac-scale automatically deploys promethius and grafana and connect with metrics endpoint.
jac-scale 0.1.7#
- KWESC_NAME syntax changed from
<>to backtick: Updated keyword-escaped names from<>prefix to backtick prefix to match the jaclang grammar change. - Update syntax for TYPE_OP removal: Replaced backtick type operator syntax (
`root) withRootand filter syntax ((`?Type)) with[?:Type]across all docs, tests, examples, and README.
jac-scale 0.1.6#
-
WebSocket Support: Added WebSocket transport for walkers via
@restspec(protocol=APIProtocol.WEBSOCKET)with persistent bidirectional connections atws://host/ws/{walker_name}. TheAPIProtocolenum (HTTP,WEBHOOK,WEBSOCKET) replaces the previouswebhook=Trueflag-migrate by changing@restspec(webhook=True)to@restspec(protocol=APIProtocol.WEBHOOK). -
fix: Exclude
jac.local.tomlduring K8s code sync: The local dev override file (jac.local.toml) is now excluded when syncing application code to the Kubernetes PVC. Previously, this file could override deployment settings such as the serve port, causing health check failures.
jac-scale 0.1.5#
- JsxElement Return Types: Updated all JSX component return types from
anytoJsxElementfor compile-time type safety. - Client bundle error help message: When the client bundle build fails during
jac start, the server now prints a troubleshooting suggestion to runjac clean --alland a link to the Discord community for support.
jac-scale 0.1.4#
- Console infrastructure: Replaced bare
print()calls withconsoleabstraction for consistent output formatting. - Hot fix: call state: Normal spawn calls inside API spawn calls supported.
--no_clientflag support: Server startup now honors the--no_clientflag, skipping eager client bundling when the client bundle is built separately, adn we need server only.- PyJWT version pinned: Pinned
pyjwtto>=2.10.1,<2.11.0and updated default JWT secret to meet minimum key length requirements.
jac-scale 0.1.3#
-
GET Method Support: Added full support for HTTP GET requests for both walkers and functions, including correct mapping of query parameters, support for both dynamic (HMR) and static endpoints, and customization via
@restspec(method=HTTPMethod.GET). -
Streaming Response Support: Streaming responses are supported with walker spawn calls and function calls.
-
Webhook Support: Added webhook transport for walkers with HMAC-SHA256 signature verification. Walkers can be configured with
@restspec(webhook=True)to receive webhook requests at/webhook/{walker_name}endpoints with API key authentication and signature verification. -
Storage Abstraction: Introduced a pluggable storage abstraction layer for file operations.
- Abstract
Storageinterface with standard operations:upload,download,delete,list,copy,move,get_metadata - Default
LocalStorageimplementation injaclang.runtimelib.storage - Hookable
store(base_path, create_dirs)builtin that returns a configuredStorageinstance -
Configure via
jac.toml [storage]section orJAC_STORAGE_PATH/JAC_STORAGE_CREATE_DIRSenvironment variables -
jac destroy command wait till fully removal of resources
-
SPA Catch-All for BrowserRouter Support: The FastAPI server's
serve_root_assetendpoint now falls back to rendering SPA HTML for extensionless paths whenbase_route_appis configured. API prefix paths (cl/,walker/,function/,user/,static/) are excluded from the catch-all. This matches the built-in HTTP server's behavior for BrowserRouter support. -
Internal: Explicitly declared all postinit fields across the codebase.
PyPI Installation by Default#
Kubernetes deployments now install Jaseci packages from PyPI by default instead of cloning the entire repository. This provides faster startup times and more reproducible deployments.
Default behavior (PyPI installation):
Experimental mode (repo clone - previous behavior):
New CLI Flag: --experimental#
Added --experimental (-e) flag to jac start --scale command. When enabled, falls back to the previous behavior of cloning the Jaseci repository and installing packages in editable mode. Useful for testing unreleased changes.
Version Pinning via plugin_versions Configuration#
Added plugin_versions configuration in jac.toml to pin specific package versions:
[plugins.scale.kubernetes.plugin_versions]
jaclang = "0.1.5" # or "latest"
jac_scale = "0.1.1" # or "latest"
jac_client = "0.1.0" # or "latest"
jac_byllm = "none" # use "none" to skip installation (will install relevant byllm version)
When not specified, defaults to "latest" for all packages.
Enhanced restspec Decorator#
The @restspec decorator now supports custom HTTP methods and custom endpoint paths for both walkers and functions.
- Custom Methods: Use
method=HTTPMethod.GET,method=HTTPMethod.PUT, etc. - Custom Paths: Use
path="/my/custom/path"to override the default routing.
jac-scale 0.1.1#
jac-scale 0.1.0#
Initial Release#
First release of Jac-Scale - a scalable runtime framework for distributed Jac applications.
Key Features#
- Conversion of walker to fastapi endpoints
- Multi memory hierachy implementation
- Support for Mongodb (persistance storage) and Redis (cache storage) in k8s
- Deployment of app code directly to k8s cluster
- k8s support for local deployment and aws k8s deployment
-
SSO support for google
-
Custom Response Headers: Configure custom HTTP response headers via
[environments.response.headers]injac.toml. Useful for security headers like COOP/COEP (required forSharedArrayBuffersupport in libraries like monaco-editor).