Coverage for src/lexigram/admin/settings/panel/deployment_spec.py: 100%

15 statements  

« prev     ^ index     » next       coverage.py v7.15.4, created at 2026-08-21 14:56 +0800

1"""Deployment info configuration specification — read-only, env-sourced.""" 

2 

3from __future__ import annotations 

4 

5import os 

6 

7from lexigram.admin.settings.panel.nodes import ConfigSpec, StringNode 

8from lexigram.admin.settings.panel.registry import ConfigRegistry 

9 

10__all__ = ["DeploymentInfoSpec", "register_spec"] 

11 

12 

13class DeploymentInfoSpec(ConfigSpec): 

14 """Read-only deployment info sourced from environment variables.""" 

15 

16 namespace = "admin.deployment" 

17 label = "Deployment Info" 

18 icon = "server" 

19 description = "Read-only environment and runtime configuration." 

20 store_name = "env" 

21 

22 environment = StringNode( 

23 label="Environment", 

24 default=os.environ.get("ENVIRONMENT", "unknown"), 

25 readonly=True, 

26 help_text="Deployment environment name.", 

27 ) 

28 log_level = StringNode( 

29 label="Log Level", 

30 default=os.environ.get("LOG_LEVEL", "INFO"), 

31 readonly=True, 

32 help_text="Configured application log level.", 

33 ) 

34 

35 

36def register_spec(registry: ConfigRegistry) -> None: 

37 """Register this spec with the config registry.""" 

38 registry.register_spec(DeploymentInfoSpec)