Skip to content

Feat/1.0.0 - #14

Merged
taurus-stack merged 5 commits into
mainfrom
feat/1.0.0
Sep 4, 2026
Merged

taurus-stack merged 5 commits into
mainfrom
feat/1.0.0

Conversation

@taurus-stack

Copy link
Copy Markdown
Owner

No description provided.

jinweijie added 5 commits September 4, 2026 10:20
jinweijie
```
feat(settings): add fallback mechanism for missing conf.env module

- Wrap conf.env import in try-except block to handle ModuleNotFoundError
- Add comprehensive fallback configuration with default SQLite settings
- Include detailed warning log message guiding users to create env config
- Set default database, Redis, and application settings for development use
- Configure default allowed hosts and column exclude apps
```
jinweijie
```
refactor(serializers): remove unused workflow approval models and add EE import check

Remove obsolete workflow approval related models including WorkflowApprove,
WorkflowApprovalRule, WorkflowApprovalNode, WorkflowApprovalInstance,
WorkflowApprovalNodeExecution, and other unused models like HostLog,
ManagedProgram, ProgramInstallTemplate, ProgramHostBinding, etc.

Add conditional import logic for enterprise edition serializers with proper
fallback handling to prevent AttributeError when EE module is missing.
The thin wrapper serializers now only load when _EE_SUPERVISOR_PROGRAM_OK flag
is True, otherwise fallback serializers are used.

Fix DRF field info error in ProgramCommandViewSet when EE module is not available.
```
jinweijie
```
chore(serializers): add audit script to check Meta.model=None bug in Thin Wrapper Serializers

Add audit script to identify serializers with Meta.model=None issues when EE is absent.
The script checks various serializer classes including WorkflowDAGVersionSerializer,
ProgramInstallTemplateSerializers, HostLogSerializers, OpsExecutionApprovalSerializers,
Script approval serializers, SharePermission serializers, Workflow approval serializers,
Scheduler HA serializers, and Extension center placeholders.

The audit identifies problematic serializers by attempting to instantiate them and
accessing their fields property which triggers DRF get_field_info and reveals
ModelSerializer subclasses with Meta.model=None configuration that could cause
HTTP 400/500 errors when ViewSet has no EE gate.
```
jinweijie
```
feat(serializers): add conditional EE serializer definitions with import guards

Add defensive import guards for all EE serializers to prevent AttributeError
when EE modules are not available. Introduce *_OK flags to conditionally
define serializer classes only when EE imports succeed.

This fixes an issue where CE functionality would fail when accessing
WorkflowDAGVersionSerializer during workflow publishing due to missing
Meta.model attribute when EE is not installed.

Also adds CE base implementation for WorkflowDAGVersionSerializer to ensure
core functionality remains available without EE dependencies.
```
jinweijie
```
refactor(serializers): remove conditional guards from EE serializer wrappers

Remove _EE_*_OK conditional guards from enterprise edition serializer
wrappers in taurus/serializers.py. All thin wrapper classes are now
unconditionally defined since they are protected by dispatch-level EE
gates that prevent instantiation when EE is not available.

The changes ensure consistent behavior across all EE serializers and
reduce complexity by removing the need to check import success flags.
Classes that were previously conditionally defined are now always
defined as thin wrappers extending their EE implementations or
fallback serializers when EE imports fail.

This affects multiple serializer groups including log center,
operations approval, script audit/approval/check, share permissions,
workflow approvals, and scheduler HA components.
```
@taurus-stack
taurus-stack merged commit 2d965cb into main Sep 4, 2026
1 check failed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant