Files
TermiNexus 53af9884df refactor(msync): msync 整体搬迁至 SDK 并消除对 gvsds 的依赖
- msync 全部实现迁入 gvsdsdk(models/registry/ogm/transaction/auth +
  Django 集成层 middleware/sio/views/serializers/urls/admin/apps/migrations)
- 新增 gvsdsdk/secrets.py(secrets.ini 读取)与 serializer_base.py
  (PascalCase DRF 序列化器基类)
- msync 0001 迁移改用 gvsdsdk.models.UUIDField 并与模型 deep_deconstruct
  完全对齐(消除 makemigrations 漂移),dependencies 置空
- msync apps.py 移除 gvsds.app_config 软依赖,域名仅经环境变量/settings 解析
- 验证:屏蔽 gvsds 包后 50 个 gvsdsdk 子模块独立导入通过
2026-08-10 22:23:52 +08:00

99 lines
4.2 KiB
Python

from rest_framework import serializers
from gvsdsdk.serializer_base import PascalCaseSerializer, PascalCaseModelSerializer
from gvsdsdk.msync.models import ServiceNode
class ServiceNodeSerializer(PascalCaseModelSerializer):
class Meta:
model = ServiceNode
fields = ['ServiceName', 'ServiceDomain', 'ServiceScope', 'ServiceType', 'ServiceMetadata', 'ServiceStatus', 'CreateTime', 'LastHeartbeat']
read_only_fields = ['CreateTime', 'LastHeartbeat']
class ServiceTokenResponseSerializer(PascalCaseSerializer):
AccessToken = serializers.CharField()
RefreshToken = serializers.CharField()
Scope = serializers.ListField()
ExpiresAt = serializers.FloatField()
class AuthTokenRequestSerializer(PascalCaseSerializer):
ServiceName = serializers.CharField()
Payload = serializers.DictField()
Signature = serializers.CharField()
class RefreshTokenRequestSerializer(PascalCaseSerializer):
RefreshToken = serializers.CharField()
class OGMRegisterSerializer(PascalCaseSerializer):
ObjectType = serializers.CharField()
ObjectLocalID = serializers.CharField()
ServiceName = serializers.CharField()
ObjectGlobalID = serializers.CharField(required=False, allow_blank=True)
Metadata = serializers.DictField(required=False, default=dict)
class OGMBatchRegisterSerializer(PascalCaseSerializer):
Items = OGMRegisterSerializer(many=True)
ServiceName = serializers.CharField()
class ServiceRegisterSerializer(PascalCaseSerializer):
ServiceName = serializers.CharField()
ServiceDomain = serializers.CharField()
ServiceSecret = serializers.CharField(write_only=True)
ServiceSecretHash = serializers.CharField(required=False, allow_blank=True)
ServiceScope = serializers.ListField(required=False, default=['ogm:read', 'ogm:write', 'registry:read'])
ServiceType = serializers.IntegerField(default=0)
ServiceMetadata = serializers.DictField(required=False, default=dict)
class TransactionStepSerializer(PascalCaseSerializer):
StepName = serializers.CharField()
StepDescription = serializers.CharField(required=False, default='')
ParticipantServiceUUID = serializers.CharField(required=False, allow_blank=True)
ActionEndpoint = serializers.CharField()
ActionMethod = serializers.CharField(default='POST')
ActionPayload = serializers.DictField(required=False, default=dict)
CompensateEndpoint = serializers.CharField(required=False, default='')
CompensateMethod = serializers.CharField(default='POST')
CompensatePayload = serializers.DictField(required=False, default=dict)
MaxRetries = serializers.IntegerField(default=3)
class TransactionCreateSerializer(PascalCaseSerializer):
TransactionName = serializers.CharField()
TransactionDescription = serializers.CharField(required=False, default='')
TransactionType = serializers.ChoiceField(choices=['saga', '2pc'], default='saga')
Steps = TransactionStepSerializer(many=True)
InitiatorServiceName = serializers.CharField(required=False, allow_blank=True)
ReferenceOGMUUID = serializers.CharField(required=False, allow_blank=True)
Payload = serializers.DictField(required=False, default=dict)
TimeoutSeconds = serializers.IntegerField(default=300)
class TransactionExecuteSerializer(PascalCaseSerializer):
AccessToken = serializers.CharField(required=False, allow_blank=True)
class TransactionRetryStepSerializer(PascalCaseSerializer):
StepIndex = serializers.IntegerField()
AccessToken = serializers.CharField(required=False, allow_blank=True)
class LocalExecuteSerializer(PascalCaseSerializer):
StepName = serializers.CharField()
Payload = serializers.DictField(required=False, default=dict)
TransactionCode = serializers.CharField(required=False, allow_blank=True)
StepIndex = serializers.IntegerField(required=False, allow_null=True)
class LocalCompensateSerializer(PascalCaseSerializer):
StepName = serializers.CharField()
Payload = serializers.DictField(required=False, default=dict)
ActionResult = serializers.DictField(required=False, default=dict)
TransactionCode = serializers.CharField(required=False, allow_blank=True)
StepIndex = serializers.IntegerField(required=False, allow_null=True)