Skip to content

Commit 483bdaf

Browse files
authored
Support for atRevision for get and verifiedGet (#47)
* Added tests for 1.3.0 * Supports atRevision for get and verifiedGet * Update version to 1.3.0
1 parent bdcbda9 commit 483bdaf

File tree

14 files changed

+7878
-2405
lines changed

14 files changed

+7878
-2405
lines changed

.github/workflows/ci.yml

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,8 +21,9 @@ jobs:
2121
make dev
2222
- name: Start immudb container
2323
run: |
24-
docker run -d --health-cmd "immuadmin status" --health-interval 10s --health-timeout 5s --health-retries 5 -v ${{ github.workspace }}/tests/certs/my.key.pem:/key.pem -p 3322:3322 codenotary/immudb:1.2.4 --signingKey=/key.pem
25-
docker run -d --health-cmd "immuadmin status" --health-interval 10s --health-timeout 5s --health-retries 5 -v ${{ github.workspace }}/tests/certs/my.key.pem:/key.pem -p 3333:3322 codenotary/immudb:1.1.0 --signingKey=/key.pem
24+
docker run -d --health-cmd "immuadmin status" --health-interval 10s --health-timeout 5s --health-retries 5 -v ${{ github.workspace }}/tests/certs/my.key.pem:/key.pem -p 3322:3322 codenotary/immudb:1.3.0 --signingKey=/key.pem
25+
docker run -d --health-cmd "immuadmin status" --health-interval 10s --health-timeout 5s --health-retries 5 -v ${{ github.workspace }}/tests/certs/my.key.pem:/key.pem -p 3333:3322 codenotary/immudb:1.2.4 --signingKey=/key.pem
26+
docker run -d --health-cmd "immuadmin status" --health-interval 10s --health-timeout 5s --health-retries 5 -v ${{ github.workspace }}/tests/certs/my.key.pem:/key.pem -p 3344:3322 codenotary/immudb:1.1.0 --signingKey=/key.pem
2627
- name: Run tests
2728
run: |
2829
make test

devtest.py

Lines changed: 0 additions & 11 deletions
This file was deleted.

immudb/client.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -273,14 +273,14 @@ def expireableSet(self, key: bytes, value: bytes, expiresAt: datetime.datetime):
273273
metadata.ExpiresAt(expiresAt)
274274
return setValue.call(self.__stub, self.__rs, key, value, metadata)
275275

276-
def get(self, key: bytes):
277-
return get.call(self.__stub, self.__rs, key)
276+
def get(self, key: bytes, atRevision: int = None):
277+
return get.call(self.__stub, self.__rs, key, atRevision=atRevision)
278278

279279
# Not implemented: getSince
280280
# Not implemented: getAt
281281

282-
def verifiedGet(self, key: bytes):
283-
return verifiedGet.call(self.__stub, self.__rs, key, verifying_key=self.__vk)
282+
def verifiedGet(self, key: bytes, atRevision: int = None):
283+
return verifiedGet.call(self.__stub, self.__rs, key, verifying_key=self.__vk, atRevision=atRevision)
284284

285285
def verifiedGetSince(self, key: bytes, sinceTx: int):
286286
return verifiedGet.call(self.__stub, self.__rs, key, sinceTx=sinceTx, verifying_key=self.__vk)

immudb/datatypes.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,7 @@ class SafeGetResponse:
3535
timestamp: int
3636
verified: bool
3737
refkey: bytes
38+
revision: int
3839

3940

4041
@dataclass
@@ -49,6 +50,7 @@ class GetResponse:
4950
tx: int
5051
key: bytes
5152
value: bytes
53+
revision: int
5254

5355

5456
@dataclass

immudb/grpc/proto/schema.proto

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -127,13 +127,15 @@ message Entry {
127127
Reference referencedBy = 4;
128128
KVMetadata metadata = 5;
129129
bool expired = 6;
130+
uint64 revision = 7;
130131
}
131132

132133
message Reference {
133134
uint64 tx = 1;
134135
bytes key = 2;
135136
uint64 atTx = 3;
136137
KVMetadata metadata = 4;
138+
uint64 revision = 5;
137139
}
138140

139141
message Op {
@@ -280,6 +282,7 @@ message KeyRequest {
280282
uint64 atTx = 2;
281283
uint64 sinceTx = 3;
282284
bool noWait = 4;
285+
int64 atRevision = 5;
283286
}
284287

285288
message KeyListRequest {
@@ -419,6 +422,10 @@ message TxList {
419422
repeated Tx txs = 1;
420423
}
421424

425+
message ExportTxRequest {
426+
uint64 tx = 1;
427+
}
428+
422429
message Database {
423430
string databaseName = 1;
424431
}

immudb/grpc/schema_pb2.py

Lines changed: 6547 additions & 305 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

immudb/grpc/schema_pb2_grpc.py

Lines changed: 1186 additions & 2073 deletions
Large diffs are not rendered by default.

immudb/handler/get.py

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -18,9 +18,10 @@
1818
from immudb import datatypes
1919

2020

21-
def call(service: schema_pb2_grpc.ImmuServiceStub, rs: RootService, key: bytes):
21+
def call(service: schema_pb2_grpc.ImmuServiceStub, rs: RootService, key: bytes, atRevision: int = None):
2222
request = schema_pb2.KeyRequest(
23-
key=key
23+
key=key,
24+
atRevision=atRevision
2425
)
2526
try:
2627
msg = service.Get(request)
@@ -32,5 +33,6 @@ def call(service: schema_pb2_grpc.ImmuServiceStub, rs: RootService, key: bytes):
3233
return datatypes.GetResponse(
3334
tx=msg.tx,
3435
key=msg.key,
35-
value=msg.value
36+
value=msg.value,
37+
revision=msg.revision
3638
)

immudb/handler/verifiedGet.py

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -23,11 +23,11 @@
2323
import sys
2424

2525

26-
def call(service: schema_pb2_grpc.ImmuServiceStub, rs: RootService, requestkey: bytes, atTx: int = None, verifying_key=None, sinceTx: int = None):
26+
def call(service: schema_pb2_grpc.ImmuServiceStub, rs: RootService, requestkey: bytes, atTx: int = None, verifying_key=None, sinceTx: int = None, atRevision: int = None):
2727
state = rs.get()
2828
req = schema_pb2.VerifiableGetRequest(
2929
keyRequest=schema_pb2.KeyRequest(
30-
key=requestkey, atTx=atTx, sinceTx=sinceTx),
30+
key=requestkey, atTx=atTx, sinceTx=sinceTx, atRevision=atRevision),
3131
proveSinceTx=state.txId
3232
)
3333
ventry = service.VerifiableGet(req)
@@ -95,5 +95,6 @@ def call(service: schema_pb2_grpc.ImmuServiceStub, rs: RootService, requestkey:
9595
value=ventry.entry.value,
9696
timestamp=ventry.verifiableTx.tx.header.ts,
9797
verified=verifies,
98-
refkey=refkey
98+
refkey=refkey,
99+
revision=ventry.entry.revision
99100
)

setup.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717
long_description = fh.read()
1818

1919
setup(name='immudb-py',
20-
version='1.2.4',
20+
version='1.3.0',
2121
license="Apache License Version 2.0",
2222
description='Python SDK for Immudb',
2323
long_description=long_description,

0 commit comments

Comments
 (0)