2025-12-11 21:50:42 +00:00
|
|
|
# Workspace Management Guide
|
|
|
|
|
|
2026-01-12 04:42:18 +00:00
|
|
|
This document provides comprehensive guidance on setting up and using development workspaces, including the path resolution system, testing
|
|
|
|
|
infrastructure, and workspace tools usage.
|
2025-12-11 21:50:42 +00:00
|
|
|
|
|
|
|
|
## Table of Contents
|
|
|
|
|
|
|
|
|
|
1. [Overview](#overview)
|
|
|
|
|
2. [Workspace Architecture](#workspace-architecture)
|
|
|
|
|
3. [Setup and Initialization](#setup-and-initialization)
|
|
|
|
|
4. [Path Resolution System](#path-resolution-system)
|
|
|
|
|
5. [Configuration Management](#configuration-management)
|
|
|
|
|
6. [Extension Development](#extension-development)
|
|
|
|
|
7. [Runtime Management](#runtime-management)
|
|
|
|
|
8. [Health Monitoring](#health-monitoring)
|
|
|
|
|
9. [Backup and Restore](#backup-and-restore)
|
|
|
|
|
10. [Troubleshooting](#troubleshooting)
|
|
|
|
|
|
|
|
|
|
## Overview
|
|
|
|
|
|
|
|
|
|
The workspace system provides isolated development environments for the provisioning project, enabling:
|
|
|
|
|
|
|
|
|
|
- **User Isolation**: Each developer has their own workspace with isolated runtime data
|
|
|
|
|
- **Configuration Cascading**: Hierarchical configuration from workspace to core system
|
|
|
|
|
- **Extension Development**: Template-based extension development with testing
|
|
|
|
|
- **Path Resolution**: Smart path resolution with workspace-aware fallbacks
|
|
|
|
|
- **Health Monitoring**: Comprehensive health checks with automatic repairs
|
|
|
|
|
- **Backup/Restore**: Complete workspace backup and restore capabilities
|
|
|
|
|
|
|
|
|
|
**Location**: `/workspace/`
|
|
|
|
|
**Main Tool**: `workspace/tools/workspace.nu`
|
|
|
|
|
|
|
|
|
|
## Workspace Architecture
|
|
|
|
|
|
|
|
|
|
### Directory Structure
|
|
|
|
|
|
2026-01-08 09:55:37 +00:00
|
|
|
```plaintext
|
2025-12-11 21:50:42 +00:00
|
|
|
workspace/
|
|
|
|
|
├── config/ # Development configuration
|
|
|
|
|
│ ├── dev-defaults.toml # Development environment defaults
|
|
|
|
|
│ ├── test-defaults.toml # Testing environment configuration
|
|
|
|
|
│ ├── local-overrides.toml.example # User customization template
|
|
|
|
|
│ └── {user}.toml # User-specific configurations
|
|
|
|
|
├── extensions/ # Extension development
|
|
|
|
|
│ ├── providers/ # Custom provider extensions
|
|
|
|
|
│ │ ├── template/ # Provider development template
|
|
|
|
|
│ │ └── {user}/ # User-specific providers
|
|
|
|
|
│ ├── taskservs/ # Custom task service extensions
|
|
|
|
|
│ │ ├── template/ # Task service template
|
|
|
|
|
│ │ └── {user}/ # User-specific task services
|
|
|
|
|
│ └── clusters/ # Custom cluster extensions
|
|
|
|
|
│ ├── template/ # Cluster template
|
|
|
|
|
│ └── {user}/ # User-specific clusters
|
|
|
|
|
├── infra/ # Development infrastructure
|
|
|
|
|
│ ├── examples/ # Example infrastructures
|
|
|
|
|
│ │ ├── minimal/ # Minimal learning setup
|
|
|
|
|
│ │ ├── development/ # Full development environment
|
|
|
|
|
│ │ └── testing/ # Testing infrastructure
|
|
|
|
|
│ ├── local/ # Local development setups
|
|
|
|
|
│ └── {user}/ # User-specific infrastructures
|
|
|
|
|
├── lib/ # Workspace libraries
|
|
|
|
|
│ └── path-resolver.nu # Path resolution system
|
|
|
|
|
├── runtime/ # Runtime data (per-user isolation)
|
|
|
|
|
│ ├── workspaces/{user}/ # User workspace data
|
|
|
|
|
│ ├── cache/{user}/ # User-specific cache
|
|
|
|
|
│ ├── state/{user}/ # User state management
|
|
|
|
|
│ ├── logs/{user}/ # User application logs
|
|
|
|
|
│ └── data/{user}/ # User database files
|
|
|
|
|
└── tools/ # Workspace management tools
|
|
|
|
|
├── workspace.nu # Main workspace interface
|
|
|
|
|
├── init-workspace.nu # Workspace initialization
|
|
|
|
|
├── workspace-health.nu # Health monitoring
|
|
|
|
|
├── backup-workspace.nu # Backup management
|
|
|
|
|
├── restore-workspace.nu # Restore functionality
|
|
|
|
|
├── reset-workspace.nu # Workspace reset
|
|
|
|
|
└── runtime-manager.nu # Runtime data management
|
2026-01-12 04:42:18 +00:00
|
|
|
```
|
2025-12-11 21:50:42 +00:00
|
|
|
|
|
|
|
|
### Component Integration
|
|
|
|
|
|
|
|
|
|
**Workspace → Core Integration**:
|
2026-01-08 09:55:37 +00:00
|
|
|
|
2025-12-11 21:50:42 +00:00
|
|
|
- Workspace paths take priority over core paths
|
|
|
|
|
- Extensions discovered automatically from workspace
|
|
|
|
|
- Configuration cascades from workspace to core defaults
|
|
|
|
|
- Runtime data completely isolated per user
|
|
|
|
|
|
|
|
|
|
**Development Workflow**:
|
2026-01-08 09:55:37 +00:00
|
|
|
|
2025-12-11 21:50:42 +00:00
|
|
|
1. **Initialize** personal workspace
|
|
|
|
|
2. **Configure** development environment
|
|
|
|
|
3. **Develop** extensions and infrastructure
|
|
|
|
|
4. **Test** locally with isolated environment
|
|
|
|
|
5. **Deploy** to shared infrastructure
|
|
|
|
|
|
|
|
|
|
## Setup and Initialization
|
|
|
|
|
|
|
|
|
|
### Quick Start
|
|
|
|
|
|
|
|
|
|
```bash
|
|
|
|
|
# Navigate to workspace
|
|
|
|
|
cd workspace/tools
|
|
|
|
|
|
|
|
|
|
# Initialize workspace with defaults
|
|
|
|
|
nu workspace.nu init
|
|
|
|
|
|
|
|
|
|
# Initialize with specific options
|
|
|
|
|
nu workspace.nu init --user-name developer --infra-name my-dev-infra
|
2026-01-12 04:42:18 +00:00
|
|
|
```
|
2025-12-11 21:50:42 +00:00
|
|
|
|
|
|
|
|
### Complete Initialization
|
|
|
|
|
|
|
|
|
|
```bash
|
|
|
|
|
# Full initialization with all options
|
|
|
|
|
nu workspace.nu init \
|
|
|
|
|
--user-name developer \
|
|
|
|
|
--infra-name development-env \
|
|
|
|
|
--workspace-type development \
|
|
|
|
|
--template full \
|
|
|
|
|
--overwrite \
|
|
|
|
|
--create-examples
|
2026-01-12 04:42:18 +00:00
|
|
|
```
|
2025-12-11 21:50:42 +00:00
|
|
|
|
|
|
|
|
**Initialization Parameters**:
|
2026-01-08 09:55:37 +00:00
|
|
|
|
2025-12-11 21:50:42 +00:00
|
|
|
- `--user-name`: User identifier (defaults to `$env.USER`)
|
|
|
|
|
- `--infra-name`: Infrastructure name for this workspace
|
|
|
|
|
- `--workspace-type`: Type (`development`, `testing`, `production`)
|
|
|
|
|
- `--template`: Template to use (`minimal`, `full`, `custom`)
|
|
|
|
|
- `--overwrite`: Overwrite existing workspace
|
|
|
|
|
- `--create-examples`: Create example configurations and infrastructure
|
|
|
|
|
|
|
|
|
|
### Post-Initialization Setup
|
|
|
|
|
|
|
|
|
|
**Verify Installation**:
|
2026-01-08 09:55:37 +00:00
|
|
|
|
2025-12-11 21:50:42 +00:00
|
|
|
```bash
|
|
|
|
|
# Check workspace health
|
|
|
|
|
nu workspace.nu health --detailed
|
|
|
|
|
|
|
|
|
|
# Show workspace status
|
|
|
|
|
nu workspace.nu status --detailed
|
|
|
|
|
|
|
|
|
|
# List workspace contents
|
|
|
|
|
nu workspace.nu list
|
2026-01-12 04:42:18 +00:00
|
|
|
```
|
2025-12-11 21:50:42 +00:00
|
|
|
|
|
|
|
|
**Configure Development Environment**:
|
2026-01-08 09:55:37 +00:00
|
|
|
|
2025-12-11 21:50:42 +00:00
|
|
|
```bash
|
|
|
|
|
# Create user-specific configuration
|
|
|
|
|
cp workspace/config/local-overrides.toml.example workspace/config/$USER.toml
|
|
|
|
|
|
|
|
|
|
# Edit configuration
|
|
|
|
|
$EDITOR workspace/config/$USER.toml
|
2026-01-12 04:42:18 +00:00
|
|
|
```
|
2025-12-11 21:50:42 +00:00
|
|
|
|
|
|
|
|
## Path Resolution System
|
|
|
|
|
|
|
|
|
|
The workspace implements a sophisticated path resolution system that prioritizes workspace paths while providing fallbacks to core system paths.
|
|
|
|
|
|
|
|
|
|
### Resolution Hierarchy
|
|
|
|
|
|
|
|
|
|
**Resolution Order**:
|
2026-01-08 09:55:37 +00:00
|
|
|
|
2025-12-11 21:50:42 +00:00
|
|
|
1. **Workspace User Paths**: `workspace/{type}/{user}/{name}`
|
|
|
|
|
2. **Workspace Shared Paths**: `workspace/{type}/{name}`
|
|
|
|
|
3. **Workspace Templates**: `workspace/{type}/template/{name}`
|
|
|
|
|
4. **Core System Paths**: `core/{type}/{name}` (fallback)
|
|
|
|
|
|
|
|
|
|
### Using Path Resolution
|
|
|
|
|
|
|
|
|
|
```nushell
|
|
|
|
|
# Import path resolver
|
|
|
|
|
use workspace/lib/path-resolver.nu
|
|
|
|
|
|
|
|
|
|
# Resolve configuration with workspace awareness
|
|
|
|
|
let config_path = (path-resolver resolve_path "config" "user" --workspace-user "developer")
|
|
|
|
|
|
|
|
|
|
# Resolve with automatic fallback to core
|
|
|
|
|
let extension_path = (path-resolver resolve_path "extensions" "custom-provider" --fallback-to-core)
|
|
|
|
|
|
|
|
|
|
# Create missing directories during resolution
|
|
|
|
|
let new_path = (path-resolver resolve_path "infra" "my-infra" --create-missing)
|
2026-01-12 04:42:18 +00:00
|
|
|
```
|
2025-12-11 21:50:42 +00:00
|
|
|
|
|
|
|
|
### Configuration Resolution
|
|
|
|
|
|
|
|
|
|
**Hierarchical Configuration Loading**:
|
2026-01-08 09:55:37 +00:00
|
|
|
|
2025-12-11 21:50:42 +00:00
|
|
|
```nushell
|
|
|
|
|
# Resolve configuration with full hierarchy
|
|
|
|
|
let config = (path-resolver resolve_config "user" --workspace-user "developer")
|
|
|
|
|
|
|
|
|
|
# Load environment-specific configuration
|
|
|
|
|
let dev_config = (path-resolver resolve_config "development" --workspace-user "developer")
|
|
|
|
|
|
|
|
|
|
# Get merged configuration with all overrides
|
|
|
|
|
let merged = (path-resolver resolve_config "merged" --workspace-user "developer" --include-overrides)
|
2026-01-12 04:42:18 +00:00
|
|
|
```
|
2025-12-11 21:50:42 +00:00
|
|
|
|
|
|
|
|
### Extension Discovery
|
|
|
|
|
|
|
|
|
|
**Automatic Extension Discovery**:
|
2026-01-08 09:55:37 +00:00
|
|
|
|
2025-12-11 21:50:42 +00:00
|
|
|
```nushell
|
|
|
|
|
# Find custom provider extension
|
|
|
|
|
let provider = (path-resolver resolve_extension "providers" "my-aws-provider")
|
|
|
|
|
|
|
|
|
|
# Discover all available task services
|
|
|
|
|
let taskservs = (path-resolver list_extensions "taskservs" --include-core)
|
|
|
|
|
|
|
|
|
|
# Find cluster definition
|
|
|
|
|
let cluster = (path-resolver resolve_extension "clusters" "development-cluster")
|
2026-01-12 04:42:18 +00:00
|
|
|
```
|
2025-12-11 21:50:42 +00:00
|
|
|
|
|
|
|
|
### Health Checking
|
|
|
|
|
|
|
|
|
|
**Workspace Health Validation**:
|
2026-01-08 09:55:37 +00:00
|
|
|
|
2025-12-11 21:50:42 +00:00
|
|
|
```nushell
|
|
|
|
|
# Check workspace health with automatic fixes
|
|
|
|
|
let health = (path-resolver check_workspace_health --workspace-user "developer" --fix-issues)
|
|
|
|
|
|
|
|
|
|
# Validate path resolution chain
|
|
|
|
|
let validation = (path-resolver validate_paths --workspace-user "developer" --repair-broken)
|
|
|
|
|
|
|
|
|
|
# Check runtime directories
|
|
|
|
|
let runtime_status = (path-resolver check_runtime_health --workspace-user "developer")
|
2026-01-12 04:42:18 +00:00
|
|
|
```
|
2025-12-11 21:50:42 +00:00
|
|
|
|
|
|
|
|
## Configuration Management
|
|
|
|
|
|
|
|
|
|
### Configuration Hierarchy
|
|
|
|
|
|
|
|
|
|
**Configuration Cascade**:
|
2026-01-08 09:55:37 +00:00
|
|
|
|
2025-12-11 21:50:42 +00:00
|
|
|
1. **User Configuration**: `workspace/config/{user}.toml`
|
|
|
|
|
2. **Environment Defaults**: `workspace/config/{env}-defaults.toml`
|
|
|
|
|
3. **Workspace Defaults**: `workspace/config/dev-defaults.toml`
|
|
|
|
|
4. **Core System Defaults**: `config.defaults.toml`
|
|
|
|
|
|
|
|
|
|
### Environment-Specific Configuration
|
|
|
|
|
|
|
|
|
|
**Development Environment** (`workspace/config/dev-defaults.toml`):
|
2026-01-08 09:55:37 +00:00
|
|
|
|
2025-12-11 21:50:42 +00:00
|
|
|
```toml
|
|
|
|
|
[core]
|
|
|
|
|
name = "provisioning-dev"
|
|
|
|
|
version = "dev-${git.branch}"
|
|
|
|
|
|
|
|
|
|
[development]
|
|
|
|
|
auto_reload = true
|
|
|
|
|
verbose_logging = true
|
|
|
|
|
experimental_features = true
|
|
|
|
|
hot_reload_templates = true
|
|
|
|
|
|
|
|
|
|
[http]
|
|
|
|
|
use_curl = false
|
|
|
|
|
timeout = 30
|
|
|
|
|
retry_count = 3
|
|
|
|
|
|
|
|
|
|
[cache]
|
|
|
|
|
enabled = true
|
|
|
|
|
ttl = 300
|
|
|
|
|
refresh_interval = 60
|
|
|
|
|
|
|
|
|
|
[logging]
|
|
|
|
|
level = "debug"
|
|
|
|
|
file_rotation = true
|
2026-01-08 09:55:37 +00:00
|
|
|
max_size = "10 MB"
|
2026-01-12 04:42:18 +00:00
|
|
|
```
|
2025-12-11 21:50:42 +00:00
|
|
|
|
|
|
|
|
**Testing Environment** (`workspace/config/test-defaults.toml`):
|
2026-01-08 09:55:37 +00:00
|
|
|
|
2025-12-11 21:50:42 +00:00
|
|
|
```toml
|
|
|
|
|
[core]
|
|
|
|
|
name = "provisioning-test"
|
|
|
|
|
version = "test-${build.timestamp}"
|
|
|
|
|
|
|
|
|
|
[testing]
|
|
|
|
|
mock_providers = true
|
|
|
|
|
ephemeral_resources = true
|
|
|
|
|
parallel_tests = true
|
|
|
|
|
cleanup_after_test = true
|
|
|
|
|
|
|
|
|
|
[http]
|
|
|
|
|
use_curl = true
|
|
|
|
|
timeout = 10
|
|
|
|
|
retry_count = 1
|
|
|
|
|
|
|
|
|
|
[cache]
|
|
|
|
|
enabled = false
|
|
|
|
|
mock_responses = true
|
|
|
|
|
|
|
|
|
|
[logging]
|
|
|
|
|
level = "info"
|
|
|
|
|
test_output = true
|
2026-01-12 04:42:18 +00:00
|
|
|
```
|
2025-12-11 21:50:42 +00:00
|
|
|
|
|
|
|
|
### User Configuration Example
|
|
|
|
|
|
|
|
|
|
**User-Specific Configuration** (`workspace/config/{user}.toml`):
|
2026-01-08 09:55:37 +00:00
|
|
|
|
2025-12-11 21:50:42 +00:00
|
|
|
```toml
|
|
|
|
|
[core]
|
|
|
|
|
name = "provisioning-${workspace.user}"
|
|
|
|
|
version = "1.0.0-dev"
|
|
|
|
|
|
|
|
|
|
[infra]
|
|
|
|
|
current = "${workspace.user}-development"
|
|
|
|
|
default_provider = "upcloud"
|
|
|
|
|
|
|
|
|
|
[workspace]
|
|
|
|
|
user = "developer"
|
|
|
|
|
type = "development"
|
|
|
|
|
infra_name = "developer-dev"
|
|
|
|
|
|
|
|
|
|
[development]
|
|
|
|
|
preferred_editor = "code"
|
|
|
|
|
auto_backup = true
|
|
|
|
|
backup_interval = "1h"
|
|
|
|
|
|
|
|
|
|
[paths]
|
|
|
|
|
# Custom paths for this user
|
|
|
|
|
templates = "~/custom-templates"
|
|
|
|
|
extensions = "~/my-extensions"
|
|
|
|
|
|
|
|
|
|
[git]
|
|
|
|
|
auto_commit = false
|
|
|
|
|
commit_message_template = "[${workspace.user}] ${change.type}: ${change.description}"
|
|
|
|
|
|
|
|
|
|
[notifications]
|
|
|
|
|
slack_webhook = "https://hooks.slack.com/..."
|
|
|
|
|
email = "developer@company.com"
|
2026-01-12 04:42:18 +00:00
|
|
|
```
|
2025-12-11 21:50:42 +00:00
|
|
|
|
|
|
|
|
### Configuration Commands
|
|
|
|
|
|
|
|
|
|
**Workspace Configuration Management**:
|
2026-01-08 09:55:37 +00:00
|
|
|
|
2025-12-11 21:50:42 +00:00
|
|
|
```bash
|
|
|
|
|
# Show current configuration
|
|
|
|
|
nu workspace.nu config show
|
|
|
|
|
|
|
|
|
|
# Validate configuration
|
|
|
|
|
nu workspace.nu config validate --user-name developer
|
|
|
|
|
|
|
|
|
|
# Edit user configuration
|
|
|
|
|
nu workspace.nu config edit --user-name developer
|
|
|
|
|
|
|
|
|
|
# Show configuration hierarchy
|
|
|
|
|
nu workspace.nu config hierarchy --user-name developer
|
|
|
|
|
|
|
|
|
|
# Merge configurations for debugging
|
|
|
|
|
nu workspace.nu config merge --user-name developer --output merged-config.toml
|
2026-01-12 04:42:18 +00:00
|
|
|
```
|
2025-12-11 21:50:42 +00:00
|
|
|
|
|
|
|
|
## Extension Development
|
|
|
|
|
|
|
|
|
|
### Extension Types
|
|
|
|
|
|
|
|
|
|
The workspace provides templates and tools for developing three types of extensions:
|
|
|
|
|
|
|
|
|
|
1. **Providers**: Cloud provider implementations
|
|
|
|
|
2. **Task Services**: Infrastructure service components
|
|
|
|
|
3. **Clusters**: Complete deployment solutions
|
|
|
|
|
|
|
|
|
|
### Provider Extension Development
|
|
|
|
|
|
|
|
|
|
**Create New Provider**:
|
2026-01-08 09:55:37 +00:00
|
|
|
|
2025-12-11 21:50:42 +00:00
|
|
|
```bash
|
|
|
|
|
# Copy template
|
|
|
|
|
cp -r workspace/extensions/providers/template workspace/extensions/providers/my-provider
|
|
|
|
|
|
|
|
|
|
# Initialize provider
|
|
|
|
|
cd workspace/extensions/providers/my-provider
|
|
|
|
|
nu init.nu --provider-name my-provider --author developer
|
2026-01-12 04:42:18 +00:00
|
|
|
```
|
2025-12-11 21:50:42 +00:00
|
|
|
|
|
|
|
|
**Provider Structure**:
|
2026-01-08 09:55:37 +00:00
|
|
|
|
|
|
|
|
```plaintext
|
2025-12-11 21:50:42 +00:00
|
|
|
workspace/extensions/providers/my-provider/
|
|
|
|
|
├── kcl/
|
2026-01-08 09:55:37 +00:00
|
|
|
│ ├── provider.ncl # Provider configuration schema
|
|
|
|
|
│ ├── server.ncl # Server configuration
|
|
|
|
|
│ └── version.ncl # Version management
|
2025-12-11 21:50:42 +00:00
|
|
|
├── nulib/
|
|
|
|
|
│ ├── provider.nu # Main provider implementation
|
|
|
|
|
│ ├── servers.nu # Server management
|
|
|
|
|
│ └── auth.nu # Authentication handling
|
|
|
|
|
├── templates/
|
|
|
|
|
│ ├── server.j2 # Server configuration template
|
|
|
|
|
│ └── network.j2 # Network configuration template
|
|
|
|
|
├── tests/
|
|
|
|
|
│ ├── unit/ # Unit tests
|
|
|
|
|
│ └── integration/ # Integration tests
|
|
|
|
|
└── README.md
|
2026-01-12 04:42:18 +00:00
|
|
|
```
|
2025-12-11 21:50:42 +00:00
|
|
|
|
|
|
|
|
**Test Provider**:
|
2026-01-08 09:55:37 +00:00
|
|
|
|
2025-12-11 21:50:42 +00:00
|
|
|
```bash
|
|
|
|
|
# Run provider tests
|
|
|
|
|
nu workspace/extensions/providers/my-provider/nulib/provider.nu test
|
|
|
|
|
|
|
|
|
|
# Test with dry-run
|
|
|
|
|
nu workspace/extensions/providers/my-provider/nulib/provider.nu create-server --dry-run
|
|
|
|
|
|
|
|
|
|
# Integration test
|
|
|
|
|
nu workspace/extensions/providers/my-provider/tests/integration/basic-test.nu
|
2026-01-12 04:42:18 +00:00
|
|
|
```
|
2025-12-11 21:50:42 +00:00
|
|
|
|
|
|
|
|
### Task Service Extension Development
|
|
|
|
|
|
|
|
|
|
**Create New Task Service**:
|
2026-01-08 09:55:37 +00:00
|
|
|
|
2025-12-11 21:50:42 +00:00
|
|
|
```bash
|
|
|
|
|
# Copy template
|
|
|
|
|
cp -r workspace/extensions/taskservs/template workspace/extensions/taskservs/my-service
|
|
|
|
|
|
|
|
|
|
# Initialize service
|
|
|
|
|
cd workspace/extensions/taskservs/my-service
|
|
|
|
|
nu init.nu --service-name my-service --service-type database
|
2026-01-12 04:42:18 +00:00
|
|
|
```
|
2025-12-11 21:50:42 +00:00
|
|
|
|
|
|
|
|
**Task Service Structure**:
|
2026-01-08 09:55:37 +00:00
|
|
|
|
|
|
|
|
```plaintext
|
2025-12-11 21:50:42 +00:00
|
|
|
workspace/extensions/taskservs/my-service/
|
|
|
|
|
├── kcl/
|
2026-01-08 09:55:37 +00:00
|
|
|
│ ├── taskserv.ncl # Service configuration schema
|
|
|
|
|
│ ├── version.ncl # Version configuration with GitHub integration
|
2025-12-11 21:50:42 +00:00
|
|
|
│ └── kcl.mod # KCL module dependencies
|
|
|
|
|
├── nushell/
|
|
|
|
|
│ ├── taskserv.nu # Main service implementation
|
|
|
|
|
│ ├── install.nu # Installation logic
|
|
|
|
|
│ ├── uninstall.nu # Removal logic
|
|
|
|
|
│ └── check-updates.nu # Version checking
|
|
|
|
|
├── templates/
|
|
|
|
|
│ ├── config.j2 # Service configuration template
|
|
|
|
|
│ ├── systemd.j2 # Systemd service template
|
|
|
|
|
│ └── compose.j2 # Docker Compose template
|
|
|
|
|
└── manifests/
|
|
|
|
|
├── deployment.yaml # Kubernetes deployment
|
|
|
|
|
└── service.yaml # Kubernetes service
|
2026-01-12 04:42:18 +00:00
|
|
|
```
|
2025-12-11 21:50:42 +00:00
|
|
|
|
|
|
|
|
### Cluster Extension Development
|
|
|
|
|
|
|
|
|
|
**Create New Cluster**:
|
2026-01-08 09:55:37 +00:00
|
|
|
|
2025-12-11 21:50:42 +00:00
|
|
|
```bash
|
|
|
|
|
# Copy template
|
|
|
|
|
cp -r workspace/extensions/clusters/template workspace/extensions/clusters/my-cluster
|
|
|
|
|
|
|
|
|
|
# Initialize cluster
|
|
|
|
|
cd workspace/extensions/clusters/my-cluster
|
|
|
|
|
nu init.nu --cluster-name my-cluster --cluster-type web-stack
|
2026-01-12 04:42:18 +00:00
|
|
|
```
|
2025-12-11 21:50:42 +00:00
|
|
|
|
|
|
|
|
**Testing Extensions**:
|
2026-01-08 09:55:37 +00:00
|
|
|
|
2025-12-11 21:50:42 +00:00
|
|
|
```bash
|
|
|
|
|
# Test extension syntax
|
|
|
|
|
nu workspace.nu tools validate-extension providers/my-provider
|
|
|
|
|
|
|
|
|
|
# Run extension tests
|
|
|
|
|
nu workspace.nu tools test-extension taskservs/my-service
|
|
|
|
|
|
|
|
|
|
# Integration test with infrastructure
|
|
|
|
|
nu workspace.nu tools deploy-test clusters/my-cluster --infra test-env
|
2026-01-12 04:42:18 +00:00
|
|
|
```
|
2025-12-11 21:50:42 +00:00
|
|
|
|
|
|
|
|
## Runtime Management
|
|
|
|
|
|
|
|
|
|
### Runtime Data Organization
|
|
|
|
|
|
|
|
|
|
**Per-User Isolation**:
|
2026-01-08 09:55:37 +00:00
|
|
|
|
|
|
|
|
```plaintext
|
2025-12-11 21:50:42 +00:00
|
|
|
runtime/
|
|
|
|
|
├── workspaces/
|
|
|
|
|
│ ├── developer/ # Developer's workspace data
|
|
|
|
|
│ │ ├── current-infra # Current infrastructure context
|
|
|
|
|
│ │ ├── settings.toml # Runtime settings
|
|
|
|
|
│ │ └── extensions/ # Extension runtime data
|
|
|
|
|
│ └── tester/ # Tester's workspace data
|
|
|
|
|
├── cache/
|
|
|
|
|
│ ├── developer/ # Developer's cache
|
|
|
|
|
│ │ ├── providers/ # Provider API cache
|
|
|
|
|
│ │ ├── images/ # Container image cache
|
|
|
|
|
│ │ └── downloads/ # Downloaded artifacts
|
|
|
|
|
│ └── tester/ # Tester's cache
|
|
|
|
|
├── state/
|
|
|
|
|
│ ├── developer/ # Developer's state
|
|
|
|
|
│ │ ├── deployments/ # Deployment state
|
|
|
|
|
│ │ └── workflows/ # Workflow state
|
|
|
|
|
│ └── tester/ # Tester's state
|
|
|
|
|
├── logs/
|
|
|
|
|
│ ├── developer/ # Developer's logs
|
|
|
|
|
│ │ ├── provisioning.log
|
|
|
|
|
│ │ ├── orchestrator.log
|
|
|
|
|
│ │ └── extensions/
|
|
|
|
|
│ └── tester/ # Tester's logs
|
|
|
|
|
└── data/
|
|
|
|
|
├── developer/ # Developer's data
|
|
|
|
|
│ ├── database.db # Local database
|
|
|
|
|
│ └── backups/ # Local backups
|
|
|
|
|
└── tester/ # Tester's data
|
2026-01-12 04:42:18 +00:00
|
|
|
```
|
2025-12-11 21:50:42 +00:00
|
|
|
|
|
|
|
|
### Runtime Management Commands
|
|
|
|
|
|
|
|
|
|
**Initialize Runtime Environment**:
|
2026-01-08 09:55:37 +00:00
|
|
|
|
2025-12-11 21:50:42 +00:00
|
|
|
```bash
|
|
|
|
|
# Initialize for current user
|
|
|
|
|
nu workspace/tools/runtime-manager.nu init
|
|
|
|
|
|
|
|
|
|
# Initialize for specific user
|
|
|
|
|
nu workspace/tools/runtime-manager.nu init --user-name developer
|
2026-01-12 04:42:18 +00:00
|
|
|
```
|
2025-12-11 21:50:42 +00:00
|
|
|
|
|
|
|
|
**Runtime Cleanup**:
|
2026-01-08 09:55:37 +00:00
|
|
|
|
2025-12-11 21:50:42 +00:00
|
|
|
```bash
|
|
|
|
|
# Clean cache older than 30 days
|
|
|
|
|
nu workspace/tools/runtime-manager.nu cleanup --type cache --age 30d
|
|
|
|
|
|
|
|
|
|
# Clean logs with rotation
|
|
|
|
|
nu workspace/tools/runtime-manager.nu cleanup --type logs --rotate
|
|
|
|
|
|
|
|
|
|
# Clean temporary files
|
|
|
|
|
nu workspace/tools/runtime-manager.nu cleanup --type temp --force
|
2026-01-12 04:42:18 +00:00
|
|
|
```
|
2025-12-11 21:50:42 +00:00
|
|
|
|
|
|
|
|
**Log Management**:
|
2026-01-08 09:55:37 +00:00
|
|
|
|
2025-12-11 21:50:42 +00:00
|
|
|
```bash
|
|
|
|
|
# View recent logs
|
|
|
|
|
nu workspace/tools/runtime-manager.nu logs --action tail --lines 100
|
|
|
|
|
|
|
|
|
|
# Follow logs in real-time
|
|
|
|
|
nu workspace/tools/runtime-manager.nu logs --action tail --follow
|
|
|
|
|
|
|
|
|
|
# Rotate large log files
|
|
|
|
|
nu workspace/tools/runtime-manager.nu logs --action rotate
|
|
|
|
|
|
|
|
|
|
# Archive old logs
|
|
|
|
|
nu workspace/tools/runtime-manager.nu logs --action archive --older-than 7d
|
2026-01-12 04:42:18 +00:00
|
|
|
```
|
2025-12-11 21:50:42 +00:00
|
|
|
|
|
|
|
|
**Cache Management**:
|
2026-01-08 09:55:37 +00:00
|
|
|
|
2025-12-11 21:50:42 +00:00
|
|
|
```bash
|
|
|
|
|
# Show cache statistics
|
|
|
|
|
nu workspace/tools/runtime-manager.nu cache --action stats
|
|
|
|
|
|
|
|
|
|
# Optimize cache
|
|
|
|
|
nu workspace/tools/runtime-manager.nu cache --action optimize
|
|
|
|
|
|
|
|
|
|
# Clear specific cache
|
|
|
|
|
nu workspace/tools/runtime-manager.nu cache --action clear --type providers
|
|
|
|
|
|
|
|
|
|
# Refresh cache
|
|
|
|
|
nu workspace/tools/runtime-manager.nu cache --action refresh --selective
|
2026-01-12 04:42:18 +00:00
|
|
|
```
|
2025-12-11 21:50:42 +00:00
|
|
|
|
|
|
|
|
**Monitoring**:
|
2026-01-08 09:55:37 +00:00
|
|
|
|
2025-12-11 21:50:42 +00:00
|
|
|
```bash
|
|
|
|
|
# Monitor runtime usage
|
|
|
|
|
nu workspace/tools/runtime-manager.nu monitor --duration 5m --interval 30s
|
|
|
|
|
|
|
|
|
|
# Check disk usage
|
|
|
|
|
nu workspace/tools/runtime-manager.nu monitor --type disk
|
|
|
|
|
|
|
|
|
|
# Monitor active processes
|
|
|
|
|
nu workspace/tools/runtime-manager.nu monitor --type processes --workspace-user developer
|
2026-01-12 04:42:18 +00:00
|
|
|
```
|
2025-12-11 21:50:42 +00:00
|
|
|
|
|
|
|
|
## Health Monitoring
|
|
|
|
|
|
|
|
|
|
### Health Check System
|
|
|
|
|
|
|
|
|
|
The workspace provides comprehensive health monitoring with automatic repair capabilities.
|
|
|
|
|
|
|
|
|
|
**Health Check Components**:
|
2026-01-08 09:55:37 +00:00
|
|
|
|
2025-12-11 21:50:42 +00:00
|
|
|
- **Directory Structure**: Validates workspace directory integrity
|
|
|
|
|
- **Configuration Files**: Checks configuration syntax and completeness
|
|
|
|
|
- **Runtime Environment**: Validates runtime data and permissions
|
|
|
|
|
- **Extension Status**: Checks extension functionality
|
|
|
|
|
- **Resource Usage**: Monitors disk space and memory usage
|
|
|
|
|
- **Integration Status**: Tests integration with core system
|
|
|
|
|
|
|
|
|
|
### Health Commands
|
|
|
|
|
|
|
|
|
|
**Basic Health Check**:
|
2026-01-08 09:55:37 +00:00
|
|
|
|
2025-12-11 21:50:42 +00:00
|
|
|
```bash
|
|
|
|
|
# Quick health check
|
|
|
|
|
nu workspace.nu health
|
|
|
|
|
|
|
|
|
|
# Detailed health check with all components
|
|
|
|
|
nu workspace.nu health --detailed
|
|
|
|
|
|
|
|
|
|
# Health check with automatic fixes
|
|
|
|
|
nu workspace.nu health --fix-issues
|
|
|
|
|
|
|
|
|
|
# Export health report
|
|
|
|
|
nu workspace.nu health --report-format json > health-report.json
|
2026-01-12 04:42:18 +00:00
|
|
|
```
|
2025-12-11 21:50:42 +00:00
|
|
|
|
|
|
|
|
**Component-Specific Health Checks**:
|
2026-01-08 09:55:37 +00:00
|
|
|
|
2025-12-11 21:50:42 +00:00
|
|
|
```bash
|
|
|
|
|
# Check directory structure
|
|
|
|
|
nu workspace/tools/workspace-health.nu check-directories --workspace-user developer
|
|
|
|
|
|
|
|
|
|
# Validate configuration files
|
|
|
|
|
nu workspace/tools/workspace-health.nu check-config --workspace-user developer
|
|
|
|
|
|
|
|
|
|
# Check runtime environment
|
|
|
|
|
nu workspace/tools/workspace-health.nu check-runtime --workspace-user developer
|
|
|
|
|
|
|
|
|
|
# Test extension functionality
|
|
|
|
|
nu workspace/tools/workspace-health.nu check-extensions --workspace-user developer
|
2026-01-12 04:42:18 +00:00
|
|
|
```
|
2025-12-11 21:50:42 +00:00
|
|
|
|
|
|
|
|
### Health Monitoring Output
|
|
|
|
|
|
|
|
|
|
**Example Health Report**:
|
2026-01-08 09:55:37 +00:00
|
|
|
|
2025-12-11 21:50:42 +00:00
|
|
|
```json
|
|
|
|
|
{
|
|
|
|
|
"workspace_health": {
|
|
|
|
|
"user": "developer",
|
|
|
|
|
"timestamp": "2025-09-25T14:30:22Z",
|
|
|
|
|
"overall_status": "healthy",
|
|
|
|
|
"checks": {
|
|
|
|
|
"directories": {
|
|
|
|
|
"status": "healthy",
|
|
|
|
|
"issues": [],
|
|
|
|
|
"auto_fixed": []
|
|
|
|
|
},
|
|
|
|
|
"configuration": {
|
|
|
|
|
"status": "warning",
|
|
|
|
|
"issues": [
|
|
|
|
|
"User configuration missing default provider"
|
|
|
|
|
],
|
|
|
|
|
"auto_fixed": [
|
|
|
|
|
"Created missing user configuration file"
|
|
|
|
|
]
|
|
|
|
|
},
|
|
|
|
|
"runtime": {
|
|
|
|
|
"status": "healthy",
|
2026-01-08 09:55:37 +00:00
|
|
|
"disk_usage": "1.2 GB",
|
|
|
|
|
"cache_size": "450 MB",
|
|
|
|
|
"log_size": "120 MB"
|
2025-12-11 21:50:42 +00:00
|
|
|
},
|
|
|
|
|
"extensions": {
|
|
|
|
|
"status": "healthy",
|
|
|
|
|
"providers": 2,
|
|
|
|
|
"taskservs": 5,
|
|
|
|
|
"clusters": 1
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
"recommendations": [
|
2026-01-08 09:55:37 +00:00
|
|
|
"Consider cleaning cache (>400 MB)",
|
|
|
|
|
"Rotate logs (>100 MB)"
|
2025-12-11 21:50:42 +00:00
|
|
|
]
|
|
|
|
|
}
|
|
|
|
|
}
|
2026-01-12 04:42:18 +00:00
|
|
|
```
|
2025-12-11 21:50:42 +00:00
|
|
|
|
|
|
|
|
### Automatic Fixes
|
|
|
|
|
|
|
|
|
|
**Auto-Fix Capabilities**:
|
2026-01-08 09:55:37 +00:00
|
|
|
|
2025-12-11 21:50:42 +00:00
|
|
|
- **Missing Directories**: Creates missing workspace directories
|
|
|
|
|
- **Broken Symlinks**: Repairs or removes broken symbolic links
|
|
|
|
|
- **Configuration Issues**: Creates missing configuration files with defaults
|
|
|
|
|
- **Permission Problems**: Fixes file and directory permissions
|
|
|
|
|
- **Corrupted Cache**: Clears and rebuilds corrupted cache entries
|
|
|
|
|
- **Log Rotation**: Rotates large log files automatically
|
|
|
|
|
|
|
|
|
|
## Backup and Restore
|
|
|
|
|
|
|
|
|
|
### Backup System
|
|
|
|
|
|
|
|
|
|
**Backup Components**:
|
2026-01-08 09:55:37 +00:00
|
|
|
|
2025-12-11 21:50:42 +00:00
|
|
|
- **Configuration**: All workspace configuration files
|
|
|
|
|
- **Extensions**: Custom extensions and templates
|
|
|
|
|
- **Runtime Data**: User-specific runtime data (optional)
|
|
|
|
|
- **Logs**: Application logs (optional)
|
|
|
|
|
- **Cache**: Cache data (optional)
|
|
|
|
|
|
|
|
|
|
### Backup Commands
|
|
|
|
|
|
|
|
|
|
**Create Backup**:
|
2026-01-08 09:55:37 +00:00
|
|
|
|
2025-12-11 21:50:42 +00:00
|
|
|
```bash
|
|
|
|
|
# Basic backup
|
|
|
|
|
nu workspace.nu backup
|
|
|
|
|
|
|
|
|
|
# Backup with auto-generated name
|
|
|
|
|
nu workspace.nu backup --auto-name
|
|
|
|
|
|
|
|
|
|
# Comprehensive backup including logs and cache
|
|
|
|
|
nu workspace.nu backup --auto-name --include-logs --include-cache
|
|
|
|
|
|
|
|
|
|
# Backup specific components
|
|
|
|
|
nu workspace.nu backup --components config,extensions --name my-backup
|
2026-01-12 04:42:18 +00:00
|
|
|
```
|
2025-12-11 21:50:42 +00:00
|
|
|
|
|
|
|
|
**Backup Options**:
|
2026-01-08 09:55:37 +00:00
|
|
|
|
2025-12-11 21:50:42 +00:00
|
|
|
- `--auto-name`: Generate timestamp-based backup name
|
|
|
|
|
- `--include-logs`: Include application logs
|
|
|
|
|
- `--include-cache`: Include cache data
|
|
|
|
|
- `--components`: Specify components to backup
|
|
|
|
|
- `--compress`: Create compressed backup archive
|
|
|
|
|
- `--encrypt`: Encrypt backup with age/sops
|
|
|
|
|
- `--remote`: Upload to remote storage (S3, etc.)
|
|
|
|
|
|
|
|
|
|
### Restore System
|
|
|
|
|
|
|
|
|
|
**List Available Backups**:
|
2026-01-08 09:55:37 +00:00
|
|
|
|
2025-12-11 21:50:42 +00:00
|
|
|
```bash
|
|
|
|
|
# List all backups
|
|
|
|
|
nu workspace.nu restore --list-backups
|
|
|
|
|
|
|
|
|
|
# List backups with details
|
|
|
|
|
nu workspace.nu restore --list-backups --detailed
|
|
|
|
|
|
|
|
|
|
# Show backup contents
|
|
|
|
|
nu workspace.nu restore --show-contents --backup-name workspace-developer-20250925_143022
|
2026-01-12 04:42:18 +00:00
|
|
|
```
|
2025-12-11 21:50:42 +00:00
|
|
|
|
|
|
|
|
**Restore Operations**:
|
2026-01-08 09:55:37 +00:00
|
|
|
|
2025-12-11 21:50:42 +00:00
|
|
|
```bash
|
|
|
|
|
# Restore latest backup
|
|
|
|
|
nu workspace.nu restore --latest
|
|
|
|
|
|
|
|
|
|
# Restore specific backup
|
|
|
|
|
nu workspace.nu restore --backup-name workspace-developer-20250925_143022
|
|
|
|
|
|
|
|
|
|
# Selective restore
|
|
|
|
|
nu workspace.nu restore --selective --backup-name my-backup
|
|
|
|
|
|
|
|
|
|
# Restore to different user
|
|
|
|
|
nu workspace.nu restore --backup-name my-backup --restore-to different-user
|
2026-01-12 04:42:18 +00:00
|
|
|
```
|
2025-12-11 21:50:42 +00:00
|
|
|
|
|
|
|
|
**Advanced Restore Options**:
|
2026-01-08 09:55:37 +00:00
|
|
|
|
2025-12-11 21:50:42 +00:00
|
|
|
- `--selective`: Choose components to restore interactively
|
|
|
|
|
- `--restore-to`: Restore to different user workspace
|
|
|
|
|
- `--merge`: Merge with existing workspace (don't overwrite)
|
|
|
|
|
- `--dry-run`: Show what would be restored without doing it
|
|
|
|
|
- `--verify`: Verify backup integrity before restore
|
|
|
|
|
|
|
|
|
|
### Reset and Cleanup
|
|
|
|
|
|
|
|
|
|
**Workspace Reset**:
|
2026-01-08 09:55:37 +00:00
|
|
|
|
2025-12-11 21:50:42 +00:00
|
|
|
```bash
|
|
|
|
|
# Reset with backup
|
|
|
|
|
nu workspace.nu reset --backup-first
|
|
|
|
|
|
|
|
|
|
# Reset keeping configuration
|
|
|
|
|
nu workspace.nu reset --backup-first --keep-config
|
|
|
|
|
|
|
|
|
|
# Complete reset (dangerous)
|
|
|
|
|
nu workspace.nu reset --force --no-backup
|
2026-01-12 04:42:18 +00:00
|
|
|
```
|
2025-12-11 21:50:42 +00:00
|
|
|
|
|
|
|
|
**Cleanup Operations**:
|
2026-01-08 09:55:37 +00:00
|
|
|
|
2025-12-11 21:50:42 +00:00
|
|
|
```bash
|
|
|
|
|
# Clean old data with dry-run
|
|
|
|
|
nu workspace.nu cleanup --type old --age 14d --dry-run
|
|
|
|
|
|
|
|
|
|
# Clean cache forcefully
|
|
|
|
|
nu workspace.nu cleanup --type cache --force
|
|
|
|
|
|
|
|
|
|
# Clean specific user data
|
|
|
|
|
nu workspace.nu cleanup --user-name old-user --type all
|
2026-01-12 04:42:18 +00:00
|
|
|
```
|
2025-12-11 21:50:42 +00:00
|
|
|
|
|
|
|
|
## Troubleshooting
|
|
|
|
|
|
|
|
|
|
### Common Issues
|
|
|
|
|
|
|
|
|
|
#### Workspace Not Found
|
|
|
|
|
|
|
|
|
|
**Error**: `Workspace for user 'developer' not found`
|
2026-01-08 09:55:37 +00:00
|
|
|
|
2025-12-11 21:50:42 +00:00
|
|
|
```bash
|
|
|
|
|
# Solution: Initialize workspace
|
|
|
|
|
nu workspace.nu init --user-name developer
|
2026-01-12 04:42:18 +00:00
|
|
|
```
|
2025-12-11 21:50:42 +00:00
|
|
|
|
|
|
|
|
#### Path Resolution Errors
|
|
|
|
|
|
|
|
|
|
**Error**: `Path resolution failed for config/user`
|
2026-01-08 09:55:37 +00:00
|
|
|
|
2025-12-11 21:50:42 +00:00
|
|
|
```bash
|
|
|
|
|
# Solution: Fix with health check
|
|
|
|
|
nu workspace.nu health --fix-issues
|
|
|
|
|
|
|
|
|
|
# Manual fix
|
|
|
|
|
nu workspace/lib/path-resolver.nu resolve_path "config" "user" --create-missing
|
2026-01-12 04:42:18 +00:00
|
|
|
```
|
2025-12-11 21:50:42 +00:00
|
|
|
|
|
|
|
|
#### Configuration Errors
|
|
|
|
|
|
|
|
|
|
**Error**: `Invalid configuration syntax in user.toml`
|
2026-01-08 09:55:37 +00:00
|
|
|
|
2025-12-11 21:50:42 +00:00
|
|
|
```bash
|
|
|
|
|
# Solution: Validate and fix configuration
|
|
|
|
|
nu workspace.nu config validate --user-name developer
|
|
|
|
|
|
|
|
|
|
# Reset to defaults
|
|
|
|
|
cp workspace/config/local-overrides.toml.example workspace/config/developer.toml
|
2026-01-12 04:42:18 +00:00
|
|
|
```
|
2025-12-11 21:50:42 +00:00
|
|
|
|
|
|
|
|
#### Runtime Issues
|
|
|
|
|
|
|
|
|
|
**Error**: `Runtime directory permissions error`
|
2026-01-08 09:55:37 +00:00
|
|
|
|
2025-12-11 21:50:42 +00:00
|
|
|
```bash
|
|
|
|
|
# Solution: Reinitialize runtime
|
|
|
|
|
nu workspace/tools/runtime-manager.nu init --user-name developer --force
|
|
|
|
|
|
|
|
|
|
# Fix permissions manually
|
|
|
|
|
chmod -R 755 workspace/runtime/workspaces/developer
|
2026-01-12 04:42:18 +00:00
|
|
|
```
|
2025-12-11 21:50:42 +00:00
|
|
|
|
|
|
|
|
#### Extension Issues
|
|
|
|
|
|
|
|
|
|
**Error**: `Extension 'my-provider' not found or invalid`
|
2026-01-08 09:55:37 +00:00
|
|
|
|
2025-12-11 21:50:42 +00:00
|
|
|
```bash
|
|
|
|
|
# Solution: Validate extension
|
|
|
|
|
nu workspace.nu tools validate-extension providers/my-provider
|
|
|
|
|
|
|
|
|
|
# Reinitialize extension from template
|
|
|
|
|
cp -r workspace/extensions/providers/template workspace/extensions/providers/my-provider
|
2026-01-12 04:42:18 +00:00
|
|
|
```
|
2025-12-11 21:50:42 +00:00
|
|
|
|
|
|
|
|
### Debug Mode
|
|
|
|
|
|
|
|
|
|
**Enable Debug Logging**:
|
2026-01-08 09:55:37 +00:00
|
|
|
|
2025-12-11 21:50:42 +00:00
|
|
|
```bash
|
|
|
|
|
# Set debug environment
|
|
|
|
|
export PROVISIONING_DEBUG=true
|
|
|
|
|
export PROVISIONING_LOG_LEVEL=debug
|
|
|
|
|
export PROVISIONING_WORKSPACE_USER=developer
|
|
|
|
|
|
|
|
|
|
# Run with debug
|
|
|
|
|
nu workspace.nu health --detailed
|
2026-01-12 04:42:18 +00:00
|
|
|
```
|
2025-12-11 21:50:42 +00:00
|
|
|
|
|
|
|
|
### Performance Issues
|
|
|
|
|
|
|
|
|
|
**Slow Operations**:
|
2026-01-08 09:55:37 +00:00
|
|
|
|
2025-12-11 21:50:42 +00:00
|
|
|
```bash
|
|
|
|
|
# Check disk space
|
|
|
|
|
df -h workspace/
|
|
|
|
|
|
|
|
|
|
# Check runtime data size
|
|
|
|
|
du -h workspace/runtime/workspaces/developer/
|
|
|
|
|
|
|
|
|
|
# Optimize workspace
|
|
|
|
|
nu workspace.nu cleanup --type cache
|
|
|
|
|
nu workspace/tools/runtime-manager.nu cache --action optimize
|
2026-01-12 04:42:18 +00:00
|
|
|
```
|
2025-12-11 21:50:42 +00:00
|
|
|
|
|
|
|
|
### Recovery Procedures
|
|
|
|
|
|
|
|
|
|
**Corrupted Workspace**:
|
2026-01-08 09:55:37 +00:00
|
|
|
|
2025-12-11 21:50:42 +00:00
|
|
|
```bash
|
|
|
|
|
# 1. Backup current state
|
|
|
|
|
nu workspace.nu backup --name corrupted-backup --force
|
|
|
|
|
|
|
|
|
|
# 2. Reset workspace
|
|
|
|
|
nu workspace.nu reset --backup-first
|
|
|
|
|
|
|
|
|
|
# 3. Restore from known good backup
|
|
|
|
|
nu workspace.nu restore --latest-known-good
|
|
|
|
|
|
|
|
|
|
# 4. Validate health
|
|
|
|
|
nu workspace.nu health --detailed --fix-issues
|
2026-01-12 04:42:18 +00:00
|
|
|
```
|
2025-12-11 21:50:42 +00:00
|
|
|
|
|
|
|
|
**Data Loss Prevention**:
|
2026-01-08 09:55:37 +00:00
|
|
|
|
2025-12-11 21:50:42 +00:00
|
|
|
- Enable automatic backups: `backup_interval = "1h"` in user config
|
|
|
|
|
- Use version control for custom extensions
|
|
|
|
|
- Regular health checks: `nu workspace.nu health`
|
|
|
|
|
- Monitor disk space and set up alerts
|
|
|
|
|
|
2026-01-12 04:42:18 +00:00
|
|
|
This workspace management system provides a robust foundation for development while maintaining isolation and providing comprehensive tools for
|
|
|
|
|
maintenance and troubleshooting.
|