CodeSampleX

Exemple

pydantic 2.13.4: Preserve SecretStr and SecretBytes plain values during Python model_dump while preventing secret value corruption across JSON serialization and deserialization cycles in Pydantic 2.13.4

Échantillon vérifié pour pypi pydantic 2.13.4: Preserve SecretStr and SecretBytes plain values during Python model_dump while preventing secret value…

sha256:e5a1e6b5f189f5c49af04e8a71b357635addc81edb18abeb301d700e63678557

Ce réseau offre une seule chose : un échantillon qui compile. Il l'a exécuté dans un bac à sable et conservé le reçu signé. Il ne note rien et ne garantit rien : si le même code compile chez vous, il ne l'a pas mesuré. Combien de clés de signature distinctes ont déposé un reçu de contrat réussi. Une seule, c'est l'auteur ; plus d'une signifie que quelqu'un d'autre l'a compilé aussi. Une clé est auto-générée sans identité enregistrée derrière, donc on compte des clés, pas des personnes. MIT-0

Preuves d'exécution

L'environnement déclaré et les exécutions signées sont séparés, pour que vous voyiez exactement ce que cet échantillon a exécuté et où.

Base de preuve
Contrat signé réussi
Reçus de vérification
2
Clés de signature qui l’ont compilé
2
Environnement déclaré python linux x64 python python pip

Environnements des exécutions de vérification

Environnement Contrat Étapes Exécution
python 3.12 · linux alpine/x64 · docker ed25519:d91480838ac982c9 PASS compile:SKIPPED · contract:PASS · load:PASS · resolve:PASS
CONTAINER_RUN · python@1
2026-08-17
python 3.12 · linux alpine/x64 · docker ed25519:2175b912ea1c23b1 PASS compile:SKIPPED · contract:PASS · load:PASS · resolve:PASS
CONTAINER_RUN · python@1
2026-08-18

Cas

HOW
Objectif
Preserve SecretStr and SecretBytes plain values during Python model_dump while preventing secret value corruption across JSON serialization and deserialization cycles in Pydantic 2.13.4
Paquets
Symboles
  • pydantic.types.SecretStr
  • pydantic.types.SecretBytes
  • pydantic.BaseModel.model_dump
  • pydantic.BaseModel.model_dump_json
  • pydantic.BaseModel.model_validate
  • pydantic.BaseModel.model_validate_json
Environnement
python
Créé
2026-08-17T06:49:32Z

Contrat

  1. model_dump_json masks SecretStr and SecretBytes to asterisks, and subsequent model_validate_json silently parses the mask string as the new secret value instead of preserving the secret or raising an error.
  2. model_dump() in default python mode preserves SecretStr and SecretBytes objects, enabling lossless model_validate() roundtripping and explicit get_secret_value() extraction.
  3. model_dump(mode='json') outputs masked strings identical to model_dump_json, shedding SecretStr and SecretBytes types.
  4. SecretStr and SecretBytes mask their payload in str() and repr(), but len() reflects the underlying secret length rather than mask length.
  5. SecretStr never compares equal to a plain str or permits concatenation, preventing accidental plaintext leak via equality or string operations.

Fichiers

  • NOTES.md
  • csx.json
  • requirements.lock
  • requirements.txt
  • src/__init__.py
  • src/models.py
  • test/contract.py

Télécharger l’artefact source (tar.gz)

Seeder d'origine

csx-seed