glacis 0.1.2__py3-none-any.whl → 0.1.4__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
glacis/models.py CHANGED
@@ -69,22 +69,82 @@ class AttestInput(BaseModel):
69
69
  populate_by_name = True
70
70
 
71
71
 
72
+ class InclusionProof(BaseModel):
73
+ """Merkle inclusion proof from transparency log."""
74
+
75
+ leaf_index: int = Field(alias="leaf_index", description="Leaf index in tree")
76
+ tree_size: int = Field(alias="tree_size", description="Tree size when proof generated")
77
+ hashes: list[str] = Field(description="Sibling hashes")
78
+ root_hash: str = Field(alias="root_hash", description="Root hash")
79
+
80
+ class Config:
81
+ populate_by_name = True
82
+
83
+
84
+ class STH(BaseModel):
85
+ """Signed Tree Head."""
86
+
87
+ tree_size: int = Field(alias="tree_size")
88
+ timestamp: str
89
+ root_hash: str = Field(alias="root_hash")
90
+ signature: str
91
+
92
+ class Config:
93
+ populate_by_name = True
94
+
95
+
96
+ class TransparencyProofs(BaseModel):
97
+ """Transparency proofs from receipt-service."""
98
+
99
+ inclusion_proof: InclusionProof
100
+ sth_curr: STH
101
+ sth_prev: STH
102
+ consistency_path: list[str] = Field(default_factory=list)
103
+
104
+ class Config:
105
+ populate_by_name = True
106
+
107
+
108
+ class FullReceipt(BaseModel):
109
+ """Full receipt from receipt-service."""
110
+
111
+ schema_version: str = Field(default="1.0")
112
+ attestation_hash: str
113
+ heartbeat_epoch: int
114
+ binary_hash: str
115
+ network_state_hash: str
116
+ mono_counter: int
117
+ wall_time_ns: str
118
+ witness_signature: str
119
+ transparency_proofs: TransparencyProofs
120
+
121
+ class Config:
122
+ populate_by_name = True
123
+
124
+
72
125
  class AttestReceipt(BaseModel):
73
126
  """Receipt returned from attestation."""
74
127
 
75
128
  attestation_id: str = Field(alias="attestationId", description="Unique attestation ID")
129
+ attestation_hash: str = Field(alias="attestation_hash", description="Content hash")
76
130
  timestamp: str = Field(description="ISO 8601 timestamp")
77
131
  leaf_index: int = Field(alias="leafIndex", description="Merkle tree leaf index")
78
- leaf_hash: str = Field(alias="leafHash", description="Leaf node hash")
79
- merkle_proof: MerkleInclusionProof = Field(
80
- alias="merkleProof", description="Inclusion proof"
81
- )
82
- signed_tree_head: SignedTreeHead = Field(
83
- alias="signedTreeHead", description="Tree head at attestation time"
84
- )
85
- badge_url: str = Field(alias="badgeUrl", description="Verification badge URL")
132
+ tree_size: int = Field(alias="treeSize", description="Tree size")
133
+ epoch_id: Optional[str] = Field(alias="epochId", default=None)
134
+ receipt: Optional[FullReceipt] = Field(default=None, description="Full receipt with proofs")
86
135
  verify_url: str = Field(alias="verifyUrl", description="Verification endpoint URL")
87
136
 
137
+ # Computed properties for convenience
138
+ @property
139
+ def witness_status(self) -> str:
140
+ """Return witness status based on receipt presence."""
141
+ return "WITNESSED" if self.receipt else "PENDING"
142
+
143
+ @property
144
+ def badge_url(self) -> str:
145
+ """Return badge/verify URL."""
146
+ return self.verify_url
147
+
88
148
  class Config:
89
149
  populate_by_name = True
90
150
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: glacis
3
- Version: 0.1.2
3
+ Version: 0.1.4
4
4
  Summary: GLACIS SDK for Python - AI Compliance Attestation
5
5
  Project-URL: Homepage, https://glacis.io
6
6
  Project-URL: Documentation, https://docs.glacis.io/sdk/python
@@ -309,10 +309,10 @@ print(result.proof_valid) # Merkle proof check (online only)
309
309
  | Tier | Price | Includes |
310
310
  |------|-------|----------|
311
311
  | Offline | Free | Local signing, "UNVERIFIED" status |
312
- | Starter | Contact us | Witnessed attestation, Merkle proofs |
312
+ | Witnessed | Free, then usage-based | Independent witness, Merkle proofs, verification URLs |
313
313
  | Enterprise | Custom | SLA, compliance exports, dedicated support |
314
314
 
315
- Get started at [glacis.io](https://glacis.io)
315
+ Get started at [docs.glacis.io](https://docs.glacis.io/sdk/python/quickstart)
316
316
 
317
317
  ## License
318
318
 
@@ -2,7 +2,7 @@ glacis/__init__.py,sha256=9TLZCbUyUQ0JpqHBNiCjvkgt9HbiRRy3B03GMvxdlQ4,2465
2
2
  glacis/__main__.py,sha256=GTA84o2Lx5md1kvI80ATu9yNDGidYtW808_TqOmIJSE,2969
3
3
  glacis/client.py,sha256=hM3dokL7HZz3E8ovndvd-uHui31Hz8afv8IFGs4aH4U,27414
4
4
  glacis/crypto.py,sha256=DiHIMGMKV616wpba0n7Niuw4t-Zz_q5ij4a7m4HDDvk,3579
5
- glacis/models.py,sha256=S-n-anzfXJL03lENluNL0cbiXfVsPEsKZyh-dPBH93U,9792
5
+ glacis/models.py,sha256=fFEp69KQZRhls5MJzAlSj3c2lJiQmEYoB6vTWIwB7QQ,11397
6
6
  glacis/storage.py,sha256=tsmlG8bAq5daN1o6I9vmppKhstURm3jcO4_oLhOiyPg,10253
7
7
  glacis/streaming.py,sha256=hAmR4XHQixLia6awnFfCaA9hZOtCq2b-pOzgaMd3YzQ,11260
8
8
  glacis/wasm_runtime.py,sha256=kJeFAomzhtC8zxJYWrnexRVMedSQkz5LXGUF43_9EeQ,17697
@@ -10,7 +10,7 @@ glacis/integrations/__init__.py,sha256=BeLSA6eGkpBWAIbXPodgS42yD_GpQ-IuXhrgF2271
10
10
  glacis/integrations/anthropic.py,sha256=xJo0Dgx4Y7TK9cQPfEaBXygX0X2lZs0D_pfioZ_P6AM,6927
11
11
  glacis/integrations/openai.py,sha256=VkLtu8iQTMiAAa2pX7byC3je8BjzYiv-8_1T7sq3J4E,6941
12
12
  glacis/wasm/s3p_core_wasi.wasm,sha256=gGrYI6hd0VkgqCg1mLADzSJP1pEUekkS-3PKd5mdBJo,253289
13
- glacis-0.1.2.dist-info/METADATA,sha256=YYesubolfam_I00Xx-1qEhJSrL_3hG7sanbN67TkJFQ,9558
14
- glacis-0.1.2.dist-info/WHEEL,sha256=WLgqFyCfm_KASv4WHyYy0P3pM_m7J5L9k2skdKLirC8,87
15
- glacis-0.1.2.dist-info/licenses/LICENSE,sha256=B7g2sM9vz4NF1poTFNMil2cnkwMFel1qUnimyvYW1sw,10766
16
- glacis-0.1.2.dist-info/RECORD,,
13
+ glacis-0.1.4.dist-info/METADATA,sha256=GkrvmqoiEcaWQ-lpHARq6CMjx8hvxeC7nKmIbeWcir0,9621
14
+ glacis-0.1.4.dist-info/WHEEL,sha256=WLgqFyCfm_KASv4WHyYy0P3pM_m7J5L9k2skdKLirC8,87
15
+ glacis-0.1.4.dist-info/licenses/LICENSE,sha256=B7g2sM9vz4NF1poTFNMil2cnkwMFel1qUnimyvYW1sw,10766
16
+ glacis-0.1.4.dist-info/RECORD,,
File without changes