scriva 1.2.1

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.
@@ -0,0 +1,83 @@
1
+ # frozen_string_literal: true
2
+ # Generated by the protocol buffer compiler. DO NOT EDIT!
3
+ # source: scriva.proto
4
+
5
+ require 'google/protobuf'
6
+
7
+ require 'google/protobuf/struct_pb'
8
+ require 'google/protobuf/timestamp_pb'
9
+ require 'google/api/annotations_pb'
10
+
11
+
12
+ descriptor_data = "\n\x0cscriva.proto\x12\tscriva.v1\x1a\x1cgoogle/protobuf/struct.proto\x1a\x1fgoogle/protobuf/timestamp.proto\x1a\x1cgoogle/api/annotations.proto\"\xb8\x01\n\x06Record\x12\n\n\x02id\x18\x01 \x01(\x04\x12%\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x17.google.protobuf.Struct\x12.\n\ndate_added\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x31\n\rdate_modified\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x0b\n\x03key\x18\x05 \x01(\t\x12\x0b\n\x03rev\x18\x06 \x01(\x04\"\x81\x01\n\x06\x46ilter\x12\'\n\x05\x66ield\x18\x01 \x01(\x0b\x32\x16.scriva.v1.FieldFilterH\x00\x12#\n\x03\x61nd\x18\x02 \x01(\x0b\x32\x14.scriva.v1.AndFilterH\x00\x12!\n\x02or\x18\x03 \x01(\x0b\x32\x13.scriva.v1.OrFilterH\x00\x42\x06\n\x04kind\"L\n\x0b\x46ieldFilter\x12\r\n\x05\x66ield\x18\x01 \x01(\t\x12\x1f\n\x02op\x18\x02 \x01(\x0e\x32\x13.scriva.v1.FilterOp\x12\r\n\x05value\x18\x03 \x01(\t\"/\n\tAndFilter\x12\"\n\x07\x66ilters\x18\x01 \x03(\x0b\x32\x11.scriva.v1.Filter\".\n\x08OrFilter\x12\"\n\x07\x66ilters\x18\x01 \x03(\x0b\x32\x11.scriva.v1.Filter\"D\n\x17\x43reateCollectionRequest\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x1b\n\x13\x64\x65\x66\x61ult_ttl_seconds\x18\x02 \x01(\x03\"<\n\x18\x43reateCollectionResponse\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x12\n\ncreated_at\x18\x02 \x01(\t\"%\n\x15\x44ropCollectionRequest\x12\x0c\n\x04name\x18\x01 \x01(\t\"$\n\x16\x44ropCollectionResponse\x12\n\n\x02ok\x18\x01 \x01(\x08\"\x18\n\x16ListCollectionsRequest\"(\n\x17ListCollectionsResponse\x12\r\n\x05names\x18\x01 \x03(\t\"l\n\rInsertRequest\x12\x12\n\ncollection\x18\x01 \x01(\t\x12%\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x17.google.protobuf.Struct\x12\x13\n\x0bttl_seconds\x18\x03 \x01(\x03\x12\x0b\n\x03key\x18\x04 \x01(\t\"J\n\x0eInsertResponse\x12\n\n\x02id\x18\x01 \x01(\x04\x12\x12\n\ndate_added\x18\x02 \x01(\t\x12\x0b\n\x03key\x18\x03 \x01(\t\x12\x0b\n\x03rev\x18\x04 \x01(\x04\"f\n\x11InsertManyRequest\x12\x12\n\ncollection\x18\x01 \x01(\t\x12(\n\x07records\x18\x02 \x03(\x0b\x32\x17.google.protobuf.Struct\x12\x13\n\x0bttl_seconds\x18\x03 \x01(\x03\"!\n\x12InsertManyResponse\x12\x0b\n\x03ids\x18\x01 \x03(\x04\"A\n\x0f\x46indByIdRequest\x12\x12\n\ncollection\x18\x01 \x01(\t\x12\n\n\x02id\x18\x02 \x01(\x04\x12\x0e\n\x06\x66ields\x18\x03 \x03(\t\"&\n\x07OrderBy\x12\r\n\x05\x66ield\x18\x01 \x01(\t\x12\x0c\n\x04\x64\x65sc\x18\x02 \x01(\x08\"\xe2\x01\n\x0b\x46indRequest\x12\x12\n\ncollection\x18\x01 \x01(\t\x12!\n\x06\x66ilter\x18\x02 \x01(\x0b\x32\x11.scriva.v1.Filter\x12\r\n\x05limit\x18\x03 \x01(\r\x12\x0e\n\x06offset\x18\x04 \x01(\r\x12\x14\n\x08order_by\x18\x05 \x01(\tB\x02\x18\x01\x12\x16\n\ndescending\x18\x06 \x01(\x08\x42\x02\x18\x01\x12\x0e\n\x06\x66ields\x18\x07 \x03(\t\x12\x12\n\npage_token\x18\x08 \x01(\t\x12+\n\x0forder_by_fields\x18\t \x03(\x0b\x32\x12.scriva.v1.OrderBy\"E\n\x0c\x46indResponse\x12!\n\x06record\x18\x01 \x01(\x0b\x32\x11.scriva.v1.Record\x12\x12\n\npage_token\x18\x02 \x01(\t\"k\n\rUpdateRequest\x12\x12\n\ncollection\x18\x01 \x01(\t\x12\n\n\x02id\x18\x02 \x01(\x04\x12%\n\x04\x64\x61ta\x18\x03 \x01(\x0b\x32\x17.google.protobuf.Struct\x12\x13\n\x0bttl_seconds\x18\x04 \x01(\x03\"M\n\x0eUpdateResponse\x12\n\n\x02id\x18\x01 \x01(\x04\x12\x15\n\rdate_modified\x18\x02 \x01(\t\x12\x0b\n\x03key\x18\x03 \x01(\t\x12\x0b\n\x03rev\x18\x04 \x01(\x04\"/\n\rDeleteRequest\x12\x12\n\ncollection\x18\x01 \x01(\t\x12\n\n\x02id\x18\x02 \x01(\x04\"\x1c\n\x0e\x44\x65leteResponse\x12\n\n\x02ok\x18\x01 \x01(\x08\"W\n\rUpsertRequest\x12\x12\n\ncollection\x18\x01 \x01(\t\x12\x0b\n\x03key\x18\x02 \x01(\t\x12%\n\x04\x64\x61ta\x18\x03 \x01(\x0b\x32\x17.google.protobuf.Struct\"3\n\x0eUpsertResponse\x12!\n\x06record\x18\x01 \x01(\x0b\x32\x11.scriva.v1.Record\"C\n\x10\x46indByKeyRequest\x12\x12\n\ncollection\x18\x01 \x01(\t\x12\x0b\n\x03key\x18\x02 \x01(\t\x12\x0e\n\x06\x66ields\x18\x03 \x03(\t\"\\\n\x12UpdateByKeyRequest\x12\x12\n\ncollection\x18\x01 \x01(\t\x12\x0b\n\x03key\x18\x02 \x01(\t\x12%\n\x04\x64\x61ta\x18\x03 \x01(\x0b\x32\x17.google.protobuf.Struct\"5\n\x12\x44\x65leteByKeyRequest\x12\x12\n\ncollection\x18\x01 \x01(\t\x12\x0b\n\x03key\x18\x02 \x01(\t\"r\n\x12UpdateIfRevRequest\x12\x12\n\ncollection\x18\x01 \x01(\t\x12\x0b\n\x03key\x18\x02 \x01(\t\x12\x14\n\x0c\x65xpected_rev\x18\x03 \x01(\x04\x12%\n\x04\x64\x61ta\x18\x04 \x01(\x0b\x32\x17.google.protobuf.Struct\"I\n\x13UpdateIfRevResponse\x12\x0f\n\x07swapped\x18\x01 \x01(\x08\x12!\n\x06record\x18\x02 \x01(\x0b\x32\x11.scriva.v1.Record\"7\n\x12\x45nsureIndexRequest\x12\x12\n\ncollection\x18\x01 \x01(\t\x12\r\n\x05\x66ield\x18\x02 \x01(\t\"8\n\x13\x45nsureIndexResponse\x12\x12\n\ncollection\x18\x01 \x01(\t\x12\r\n\x05\x66ield\x18\x02 \x01(\t\"5\n\x10\x44ropIndexRequest\x12\x12\n\ncollection\x18\x01 \x01(\t\x12\r\n\x05\x66ield\x18\x02 \x01(\t\"\x1f\n\x11\x44ropIndexResponse\x12\n\n\x02ok\x18\x01 \x01(\x08\"(\n\x12ListIndexesRequest\x12\x12\n\ncollection\x18\x01 \x01(\t\"%\n\x13ListIndexesResponse\x12\x0e\n\x06\x66ields\x18\x01 \x03(\t\"$\n\x0e\x42\x65ginTxRequest\x12\x12\n\ncollection\x18\x01 \x01(\t\" \n\x0f\x42\x65ginTxResponse\x12\r\n\x05tx_id\x18\x01 \x01(\t\" \n\x0f\x43ommitTxRequest\x12\r\n\x05tx_id\x18\x01 \x01(\t\"\x1e\n\x10\x43ommitTxResponse\x12\n\n\x02ok\x18\x01 \x01(\x08\"\"\n\x11RollbackTxRequest\x12\r\n\x05tx_id\x18\x01 \x01(\t\" \n\x12RollbackTxResponse\x12\n\n\x02ok\x18\x01 \x01(\x08\"E\n\x0cWatchRequest\x12\x12\n\ncollection\x18\x01 \x01(\t\x12!\n\x06\x66ilter\x18\x02 \x01(\x0b\x32\x11.scriva.v1.Filter\"\x8b\x01\n\nWatchEvent\x12\x1e\n\x02op\x18\x01 \x01(\x0e\x32\x12.scriva.v1.WatchOp\x12\x12\n\ncollection\x18\x02 \x01(\t\x12!\n\x06record\x18\x03 \x01(\x0b\x32\x11.scriva.v1.Record\x12&\n\x02ts\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\"\x98\x01\n\x10\x41ggregateRequest\x12\x12\n\ncollection\x18\x01 \x01(\t\x12!\n\x06\x66ilter\x18\x02 \x01(\x0b\x32\x11.scriva.v1.Filter\x12\x10\n\x08group_by\x18\x03 \x01(\t\x12\r\n\x05\x66ield\x18\x04 \x01(\t\x12,\n\x0c\x61ggregations\x18\x05 \x03(\x0e\x32\x16.scriva.v1.AggregateOp\"\x94\x01\n\x11\x41ggregateResponse\x12+\n\x0bgroup_value\x18\x01 \x01(\x0b\x32\x16.google.protobuf.Value\x12\r\n\x05\x63ount\x18\x02 \x01(\x04\x12\x0b\n\x03sum\x18\x03 \x01(\x01\x12\x0b\n\x03\x61vg\x18\x04 \x01(\x01\x12\x0b\n\x03min\x18\x05 \x01(\x01\x12\x0b\n\x03max\x18\x06 \x01(\x01\x12\x0f\n\x07numeric\x18\x07 \x01(\x08\",\n\x16\x43ollectionStatsRequest\x12\x12\n\ncollection\x18\x01 \x01(\t\"\x85\x01\n\x17\x43ollectionStatsResponse\x12\x12\n\ncollection\x18\x01 \x01(\t\x12\x14\n\x0crecord_count\x18\x02 \x01(\x04\x12\x15\n\rsegment_count\x18\x03 \x01(\x04\x12\x15\n\rdirty_entries\x18\x04 \x01(\x04\x12\x12\n\nsize_bytes\x18\x05 \x01(\x04\"$\n\x0e\x43ompactRequest\x12\x12\n\ncollection\x18\x01 \x01(\t\"\x1d\n\x0f\x43ompactResponse\x12\n\n\x02ok\x18\x01 \x01(\x08\"\x11\n\x0fSnapshotRequest\"\x1d\n\rSnapshotChunk\x12\x0c\n\x04\x64\x61ta\x18\x01 \x01(\x0c\"9\n\x10ReplicateRequest\x12\x10\n\x08\x66rom_lsn\x18\x01 \x01(\x04\x12\x13\n\x0b\x66ollower_id\x18\x02 \x01(\t\"\xd6\x01\n\x11ReplicationRecord\x12\x0b\n\x03lsn\x18\x01 \x01(\x04\x12\x12\n\ncollection\x18\x02 \x01(\t\x12$\n\x02op\x18\x03 \x01(\x0e\x32\x18.scriva.v1.ReplicationOp\x12\n\n\x02id\x18\x04 \x01(\x04\x12\x0b\n\x03rev\x18\x05 \x01(\x04\x12%\n\x04\x64\x61ta\x18\x06 \x01(\x0b\x32\x17.google.protobuf.Struct\x12\x12\n\nexpires_at\x18\x07 \x01(\x03\x12&\n\x02ts\x18\x08 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\"\x1a\n\x18ReplicationStatusRequest\"r\n\x19ReplicationStatusResponse\x12\x12\n\nleader_lsn\x18\x01 \x01(\x04\x12,\n\tfollowers\x18\x02 \x03(\x0b\x32\x19.scriva.v1.FollowerStatus\x12\x13\n\x0b\x61pplied_lsn\x18\x03 \x01(\x04\"w\n\x0e\x46ollowerStatus\x12\x13\n\x0b\x66ollower_id\x18\x01 \x01(\t\x12\x11\n\tacked_lsn\x18\x02 \x01(\x04\x12\x0b\n\x03lag\x18\x03 \x01(\x04\x12\x30\n\x0c\x63onnected_at\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\"\x1f\n\x0ePromoteRequest\x12\r\n\x05\x66orce\x18\x01 \x01(\x08\"9\n\x0fPromoteResponse\x12\x0c\n\x04role\x18\x01 \x01(\t\x12\x0b\n\x03lsn\x18\x02 \x01(\x04\x12\x0b\n\x03lag\x18\x03 \x01(\x04*q\n\x08\x46ilterOp\x12\x19\n\x15\x46ILTER_OP_UNSPECIFIED\x10\x00\x12\x06\n\x02\x45Q\x10\x01\x12\x07\n\x03NEQ\x10\x02\x12\x06\n\x02GT\x10\x03\x12\x07\n\x03GTE\x10\x04\x12\x06\n\x02LT\x10\x05\x12\x07\n\x03LTE\x10\x06\x12\x0c\n\x08\x43ONTAINS\x10\x07\x12\t\n\x05REGEX\x10\x08*Y\n\x07WatchOp\x12\x18\n\x14WATCH_OP_UNSPECIFIED\x10\x00\x12\x0c\n\x08INSERTED\x10\x01\x12\x0b\n\x07UPDATED\x10\x02\x12\x0b\n\x07\x44\x45LETED\x10\x03\x12\x0c\n\x08OVERFLOW\x10\x04*n\n\x0b\x41ggregateOp\x12\x1c\n\x18\x41GGREGATE_OP_UNSPECIFIED\x10\x00\x12\r\n\tAGG_COUNT\x10\x01\x12\x0b\n\x07\x41GG_SUM\x10\x02\x12\x0b\n\x07\x41GG_AVG\x10\x03\x12\x0b\n\x07\x41GG_MIN\x10\x04\x12\x0b\n\x07\x41GG_MAX\x10\x05*_\n\rReplicationOp\x12\x1e\n\x1aREPLICATION_OP_UNSPECIFIED\x10\x00\x12\x0e\n\nREP_INSERT\x10\x01\x12\x0e\n\nREP_UPDATE\x10\x02\x12\x0e\n\nREP_DELETE\x10\x03\x32\xd8\x16\n\x06Scriva\x12w\n\x10\x43reateCollection\x12\".scriva.v1.CreateCollectionRequest\x1a#.scriva.v1.CreateCollectionResponse\"\x1a\x82\xd3\xe4\x93\x02\x14\"\x0f/v1/collections:\x01*\x12u\n\x0e\x44ropCollection\x12 .scriva.v1.DropCollectionRequest\x1a!.scriva.v1.DropCollectionResponse\"\x1e\x82\xd3\xe4\x93\x02\x18*\x16/v1/collections/{name}\x12q\n\x0fListCollections\x12!.scriva.v1.ListCollectionsRequest\x1a\".scriva.v1.ListCollectionsResponse\"\x17\x82\xd3\xe4\x93\x02\x11\x12\x0f/v1/collections\x12\x62\n\x06Insert\x12\x18.scriva.v1.InsertRequest\x1a\x19.scriva.v1.InsertResponse\"#\x82\xd3\xe4\x93\x02\x1d\"\x18/v1/{collection}/records:\x01*\x12t\n\nInsertMany\x12\x1c.scriva.v1.InsertManyRequest\x1a\x1d.scriva.v1.InsertManyResponse\")\x82\xd3\xe4\x93\x02#\"\x1e/v1/{collection}/records/batch:\x01*\x12\x66\n\x08\x46indById\x12\x1a.scriva.v1.FindByIdRequest\x1a\x17.scriva.v1.FindResponse\"%\x82\xd3\xe4\x93\x02\x1f\x12\x1d/v1/{collection}/records/{id}\x12\x63\n\x04\x46ind\x12\x16.scriva.v1.FindRequest\x1a\x17.scriva.v1.FindResponse\"(\x82\xd3\xe4\x93\x02\"\"\x1d/v1/{collection}/records/find:\x01*0\x01\x12g\n\x06Update\x12\x18.scriva.v1.UpdateRequest\x1a\x19.scriva.v1.UpdateResponse\"(\x82\xd3\xe4\x93\x02\"\x1a\x1d/v1/{collection}/records/{id}:\x01*\x12\x64\n\x06\x44\x65lete\x12\x18.scriva.v1.DeleteRequest\x1a\x19.scriva.v1.DeleteResponse\"%\x82\xd3\xe4\x93\x02\x1f*\x1d/v1/{collection}/records/{id}\x12i\n\x06Upsert\x12\x18.scriva.v1.UpsertRequest\x1a\x19.scriva.v1.UpsertResponse\"*\x82\xd3\xe4\x93\x02$\"\x1f/v1/{collection}/records:upsert:\x01*\x12\x66\n\tFindByKey\x12\x1b.scriva.v1.FindByKeyRequest\x1a\x17.scriva.v1.FindResponse\"#\x82\xd3\xe4\x93\x02\x1d\x12\x1b/v1/{collection}/keys/{key}\x12o\n\x0bUpdateByKey\x12\x1d.scriva.v1.UpdateByKeyRequest\x1a\x19.scriva.v1.UpdateResponse\"&\x82\xd3\xe4\x93\x02 \x1a\x1b/v1/{collection}/keys/{key}:\x01*\x12l\n\x0b\x44\x65leteByKey\x12\x1d.scriva.v1.DeleteByKeyRequest\x1a\x19.scriva.v1.DeleteResponse\"#\x82\xd3\xe4\x93\x02\x1d*\x1b/v1/{collection}/keys/{key}\x12x\n\x0bUpdateIfRev\x12\x1d.scriva.v1.UpdateIfRevRequest\x1a\x1e.scriva.v1.UpdateIfRevResponse\"*\x82\xd3\xe4\x93\x02$\"\x1f/v1/{collection}/keys/{key}:cas:\x01*\x12q\n\x0b\x45nsureIndex\x12\x1d.scriva.v1.EnsureIndexRequest\x1a\x1e.scriva.v1.EnsureIndexResponse\"#\x82\xd3\xe4\x93\x02\x1d\"\x18/v1/{collection}/indexes:\x01*\x12p\n\tDropIndex\x12\x1b.scriva.v1.DropIndexRequest\x1a\x1c.scriva.v1.DropIndexResponse\"(\x82\xd3\xe4\x93\x02\"* /v1/{collection}/indexes/{field}\x12n\n\x0bListIndexes\x12\x1d.scriva.v1.ListIndexesRequest\x1a\x1e.scriva.v1.ListIndexesResponse\" \x82\xd3\xe4\x93\x02\x1a\x12\x18/v1/{collection}/indexes\x12@\n\x07\x42\x65ginTx\x12\x19.scriva.v1.BeginTxRequest\x1a\x1a.scriva.v1.BeginTxResponse\x12\x43\n\x08\x43ommitTx\x12\x1a.scriva.v1.CommitTxRequest\x1a\x1b.scriva.v1.CommitTxResponse\x12I\n\nRollbackTx\x12\x1c.scriva.v1.RollbackTxRequest\x1a\x1d.scriva.v1.RollbackTxResponse\x12\\\n\x05Watch\x12\x17.scriva.v1.WatchRequest\x1a\x15.scriva.v1.WatchEvent\"!\x82\xd3\xe4\x93\x02\x1b\"\x16/v1/{collection}/watch:\x01*0\x01\x12o\n\tAggregate\x12\x1b.scriva.v1.AggregateRequest\x1a\x1c.scriva.v1.AggregateResponse\"%\x82\xd3\xe4\x93\x02\x1f\"\x1a/v1/{collection}/aggregate:\x01*0\x01\x12x\n\x0f\x43ollectionStats\x12!.scriva.v1.CollectionStatsRequest\x1a\".scriva.v1.CollectionStatsResponse\"\x1e\x82\xd3\xe4\x93\x02\x18\x12\x16/v1/{collection}/stats\x12\x65\n\x07\x43ompact\x12\x19.scriva.v1.CompactRequest\x1a\x1a.scriva.v1.CompactResponse\"#\x82\xd3\xe4\x93\x02\x1d\"\x18/v1/{collection}/compact:\x01*\x12\x42\n\x08Snapshot\x12\x1a.scriva.v1.SnapshotRequest\x1a\x18.scriva.v1.SnapshotChunk0\x01\x12H\n\tReplicate\x12\x1b.scriva.v1.ReplicateRequest\x1a\x1c.scriva.v1.ReplicationRecord0\x01\x12~\n\x11ReplicationStatus\x12#.scriva.v1.ReplicationStatusRequest\x1a$.scriva.v1.ReplicationStatusResponse\"\x1e\x82\xd3\xe4\x93\x02\x18\x12\x16/v1/replication/status\x12\x64\n\x07Promote\x12\x19.scriva.v1.PromoteRequest\x1a\x1a.scriva.v1.PromoteResponse\"\"\x82\xd3\xe4\x93\x02\x1c\"\x17/v1/replication/promote:\x01*B,Z*github.com/srjn45/scriva/internal/pb/protob\x06proto3"
13
+
14
+ pool = ::Google::Protobuf::DescriptorPool.generated_pool
15
+ pool.add_serialized_file(descriptor_data)
16
+
17
+ module Scriva
18
+ module V1
19
+ Record = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("scriva.v1.Record").msgclass
20
+ Filter = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("scriva.v1.Filter").msgclass
21
+ FieldFilter = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("scriva.v1.FieldFilter").msgclass
22
+ AndFilter = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("scriva.v1.AndFilter").msgclass
23
+ OrFilter = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("scriva.v1.OrFilter").msgclass
24
+ CreateCollectionRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("scriva.v1.CreateCollectionRequest").msgclass
25
+ CreateCollectionResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("scriva.v1.CreateCollectionResponse").msgclass
26
+ DropCollectionRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("scriva.v1.DropCollectionRequest").msgclass
27
+ DropCollectionResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("scriva.v1.DropCollectionResponse").msgclass
28
+ ListCollectionsRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("scriva.v1.ListCollectionsRequest").msgclass
29
+ ListCollectionsResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("scriva.v1.ListCollectionsResponse").msgclass
30
+ InsertRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("scriva.v1.InsertRequest").msgclass
31
+ InsertResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("scriva.v1.InsertResponse").msgclass
32
+ InsertManyRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("scriva.v1.InsertManyRequest").msgclass
33
+ InsertManyResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("scriva.v1.InsertManyResponse").msgclass
34
+ FindByIdRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("scriva.v1.FindByIdRequest").msgclass
35
+ OrderBy = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("scriva.v1.OrderBy").msgclass
36
+ FindRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("scriva.v1.FindRequest").msgclass
37
+ FindResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("scriva.v1.FindResponse").msgclass
38
+ UpdateRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("scriva.v1.UpdateRequest").msgclass
39
+ UpdateResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("scriva.v1.UpdateResponse").msgclass
40
+ DeleteRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("scriva.v1.DeleteRequest").msgclass
41
+ DeleteResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("scriva.v1.DeleteResponse").msgclass
42
+ UpsertRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("scriva.v1.UpsertRequest").msgclass
43
+ UpsertResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("scriva.v1.UpsertResponse").msgclass
44
+ FindByKeyRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("scriva.v1.FindByKeyRequest").msgclass
45
+ UpdateByKeyRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("scriva.v1.UpdateByKeyRequest").msgclass
46
+ DeleteByKeyRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("scriva.v1.DeleteByKeyRequest").msgclass
47
+ UpdateIfRevRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("scriva.v1.UpdateIfRevRequest").msgclass
48
+ UpdateIfRevResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("scriva.v1.UpdateIfRevResponse").msgclass
49
+ EnsureIndexRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("scriva.v1.EnsureIndexRequest").msgclass
50
+ EnsureIndexResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("scriva.v1.EnsureIndexResponse").msgclass
51
+ DropIndexRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("scriva.v1.DropIndexRequest").msgclass
52
+ DropIndexResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("scriva.v1.DropIndexResponse").msgclass
53
+ ListIndexesRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("scriva.v1.ListIndexesRequest").msgclass
54
+ ListIndexesResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("scriva.v1.ListIndexesResponse").msgclass
55
+ BeginTxRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("scriva.v1.BeginTxRequest").msgclass
56
+ BeginTxResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("scriva.v1.BeginTxResponse").msgclass
57
+ CommitTxRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("scriva.v1.CommitTxRequest").msgclass
58
+ CommitTxResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("scriva.v1.CommitTxResponse").msgclass
59
+ RollbackTxRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("scriva.v1.RollbackTxRequest").msgclass
60
+ RollbackTxResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("scriva.v1.RollbackTxResponse").msgclass
61
+ WatchRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("scriva.v1.WatchRequest").msgclass
62
+ WatchEvent = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("scriva.v1.WatchEvent").msgclass
63
+ AggregateRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("scriva.v1.AggregateRequest").msgclass
64
+ AggregateResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("scriva.v1.AggregateResponse").msgclass
65
+ CollectionStatsRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("scriva.v1.CollectionStatsRequest").msgclass
66
+ CollectionStatsResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("scriva.v1.CollectionStatsResponse").msgclass
67
+ CompactRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("scriva.v1.CompactRequest").msgclass
68
+ CompactResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("scriva.v1.CompactResponse").msgclass
69
+ SnapshotRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("scriva.v1.SnapshotRequest").msgclass
70
+ SnapshotChunk = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("scriva.v1.SnapshotChunk").msgclass
71
+ ReplicateRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("scriva.v1.ReplicateRequest").msgclass
72
+ ReplicationRecord = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("scriva.v1.ReplicationRecord").msgclass
73
+ ReplicationStatusRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("scriva.v1.ReplicationStatusRequest").msgclass
74
+ ReplicationStatusResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("scriva.v1.ReplicationStatusResponse").msgclass
75
+ FollowerStatus = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("scriva.v1.FollowerStatus").msgclass
76
+ PromoteRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("scriva.v1.PromoteRequest").msgclass
77
+ PromoteResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("scriva.v1.PromoteResponse").msgclass
78
+ FilterOp = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("scriva.v1.FilterOp").enummodule
79
+ WatchOp = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("scriva.v1.WatchOp").enummodule
80
+ AggregateOp = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("scriva.v1.AggregateOp").enummodule
81
+ ReplicationOp = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("scriva.v1.ReplicationOp").enummodule
82
+ end
83
+ end
@@ -0,0 +1,123 @@
1
+ # Generated by the protocol buffer compiler. DO NOT EDIT!
2
+ # Source: scriva.proto for package 'scriva.v1'
3
+
4
+ require 'grpc'
5
+ require 'scriva/proto/scriva_pb'
6
+
7
+ module Scriva
8
+ module V1
9
+ module Scriva
10
+ # ---------------------------------------------------------------------------
11
+ # Service
12
+ # ---------------------------------------------------------------------------
13
+ #
14
+ class Service
15
+
16
+ include ::GRPC::GenericService
17
+
18
+ self.marshal_class_method = :encode
19
+ self.unmarshal_class_method = :decode
20
+ self.service_name = 'scriva.v1.Scriva'
21
+
22
+ rpc :CreateCollection, ::Scriva::V1::CreateCollectionRequest, ::Scriva::V1::CreateCollectionResponse
23
+ rpc :DropCollection, ::Scriva::V1::DropCollectionRequest, ::Scriva::V1::DropCollectionResponse
24
+ rpc :ListCollections, ::Scriva::V1::ListCollectionsRequest, ::Scriva::V1::ListCollectionsResponse
25
+ # --- CRUD ---
26
+ #
27
+ rpc :Insert, ::Scriva::V1::InsertRequest, ::Scriva::V1::InsertResponse
28
+ rpc :InsertMany, ::Scriva::V1::InsertManyRequest, ::Scriva::V1::InsertManyResponse
29
+ rpc :FindById, ::Scriva::V1::FindByIdRequest, ::Scriva::V1::FindResponse
30
+ # Server-streaming: results are streamed back one by one.
31
+ rpc :Find, ::Scriva::V1::FindRequest, stream(::Scriva::V1::FindResponse)
32
+ rpc :Update, ::Scriva::V1::UpdateRequest, ::Scriva::V1::UpdateResponse
33
+ rpc :Delete, ::Scriva::V1::DeleteRequest, ::Scriva::V1::DeleteResponse
34
+ # --- Keyed CRUD, Upsert & compare-and-swap (N1) ---
35
+ #
36
+ # These map straight onto the embedded engine's keyed operations, giving
37
+ # network clients natural (caller-supplied) string keys, upsert, and
38
+ # optimistic-concurrency updates keyed on a per-record revision (`rev`).
39
+ #
40
+ # Upsert inserts data under key if no live record carries it, or replaces the
41
+ # existing record's data if one does — atomically. Returns the resulting
42
+ # record with its (incremented on replace) revision. This is the keyed-insert
43
+ # path: there is no separate InsertWithKey RPC.
44
+ rpc :Upsert, ::Scriva::V1::UpsertRequest, ::Scriva::V1::UpsertResponse
45
+ # FindByKey returns the record carrying the caller-supplied string key.
46
+ # A missing key yields NOT_FOUND.
47
+ rpc :FindByKey, ::Scriva::V1::FindByKeyRequest, ::Scriva::V1::FindResponse
48
+ # UpdateByKey overwrites the record carrying key, preserving the key itself.
49
+ # A missing key yields NOT_FOUND.
50
+ rpc :UpdateByKey, ::Scriva::V1::UpdateByKeyRequest, ::Scriva::V1::UpdateResponse
51
+ # DeleteByKey removes the record carrying key. A missing key yields NOT_FOUND.
52
+ rpc :DeleteByKey, ::Scriva::V1::DeleteByKeyRequest, ::Scriva::V1::DeleteResponse
53
+ # UpdateIfRev conditionally updates the record carrying key: the write is
54
+ # applied only if the record's current revision equals expected_rev. A stale
55
+ # revision (or a missing key) is a clean no-op reported as swapped=false, not
56
+ # an error.
57
+ rpc :UpdateIfRev, ::Scriva::V1::UpdateIfRevRequest, ::Scriva::V1::UpdateIfRevResponse
58
+ # --- Secondary indexes ---
59
+ #
60
+ rpc :EnsureIndex, ::Scriva::V1::EnsureIndexRequest, ::Scriva::V1::EnsureIndexResponse
61
+ rpc :DropIndex, ::Scriva::V1::DropIndexRequest, ::Scriva::V1::DropIndexResponse
62
+ rpc :ListIndexes, ::Scriva::V1::ListIndexesRequest, ::Scriva::V1::ListIndexesResponse
63
+ # --- Transactions ---
64
+ #
65
+ rpc :BeginTx, ::Scriva::V1::BeginTxRequest, ::Scriva::V1::BeginTxResponse
66
+ rpc :CommitTx, ::Scriva::V1::CommitTxRequest, ::Scriva::V1::CommitTxResponse
67
+ rpc :RollbackTx, ::Scriva::V1::RollbackTxRequest, ::Scriva::V1::RollbackTxResponse
68
+ # --- Watch (server-streaming change feed) ---
69
+ #
70
+ rpc :Watch, ::Scriva::V1::WatchRequest, stream(::Scriva::V1::WatchEvent)
71
+ # --- Aggregations (N4) ---
72
+ #
73
+ # Aggregate computes count and numeric aggregations (sum/avg/min/max) over the
74
+ # live records matching the same Filter as Find, optionally grouped by a field.
75
+ # It server-streams one message per group; a plain (ungrouped) aggregation
76
+ # streams a single message. Aggregation runs entirely in the engine — the
77
+ # collection is never materialised on the client.
78
+ rpc :Aggregate, ::Scriva::V1::AggregateRequest, stream(::Scriva::V1::AggregateResponse)
79
+ # --- Stats ---
80
+ #
81
+ rpc :CollectionStats, ::Scriva::V1::CollectionStatsRequest, ::Scriva::V1::CollectionStatsResponse
82
+ # --- Admin ---
83
+ #
84
+ # Compact runs a forced, synchronous compaction pass on a collection and
85
+ # returns only after it completes.
86
+ rpc :Compact, ::Scriva::V1::CompactRequest, ::Scriva::V1::CompactResponse
87
+ # Snapshot streams a consistent, gzip-compressed tar archive of the whole
88
+ # database. Restore by extracting it into a data directory. gRPC-only:
89
+ # binary streaming does not map cleanly onto the REST gateway.
90
+ rpc :Snapshot, ::Scriva::V1::SnapshotRequest, stream(::Scriva::V1::SnapshotChunk)
91
+ # --- Replication (R1) ---
92
+ #
93
+ # Replicate is the leader's log-shipping feed: a follower tails committed
94
+ # segment entries, each tagged with a monotonic global sequence number (LSN),
95
+ # and applies them through the normal write path to stay consistent. The
96
+ # follower asks to resume from the last LSN it applied (from_lsn); the leader
97
+ # streams every committed entry with lsn > from_lsn — first any recent history
98
+ # still buffered, then live writes as they commit. A follower too far behind
99
+ # for the leader's in-memory buffer gets FAILED_PRECONDITION and must
100
+ # re-bootstrap from a Snapshot. gRPC-only (binary, long-lived stream).
101
+ rpc :Replicate, ::Scriva::V1::ReplicateRequest, stream(::Scriva::V1::ReplicationRecord)
102
+ # ReplicationStatus reports the leader's current LSN and, for each connected
103
+ # follower, the last LSN shipped to it and its lag. Used for observability and
104
+ # to read the leader's LSN watermark before bootstrapping a fresh follower.
105
+ rpc :ReplicationStatus, ::Scriva::V1::ReplicationStatusRequest, ::Scriva::V1::ReplicationStatusResponse
106
+ # --- Failover (R3) ---
107
+ #
108
+ # Promote flips a caught-up follower into a leader: it stops replicating from
109
+ # its upstream, lifts the read-only guard, and begins accepting writes.
110
+ # Promotion is refused with FAILED_PRECONDITION when the node is not a
111
+ # follower, or when its replication lag (last-known leader LSN minus applied
112
+ # LSN) exceeds the server's configured threshold — pass force to override that
113
+ # guard when the leader is unrecoverable and some divergence is acceptable.
114
+ # This is an admin operation and requires a read-write API key. Promotion is a
115
+ # one-way transition; automatic leader election is out of scope.
116
+ rpc :Promote, ::Scriva::V1::PromoteRequest, ::Scriva::V1::PromoteResponse
117
+ end
118
+
119
+ Stub = Service.rpc_stub_class
120
+ end
121
+ # --- Collection management ---
122
+ end
123
+ end
@@ -0,0 +1,3 @@
1
+ module Scriva
2
+ VERSION = "1.2.1"
3
+ end
data/lib/scriva.rb ADDED
@@ -0,0 +1,2 @@
1
+ require "scriva/version"
2
+ require "scriva/client"
data/scriva.gemspec ADDED
@@ -0,0 +1,22 @@
1
+ require_relative "lib/scriva/version"
2
+
3
+ Gem::Specification.new do |spec|
4
+ spec.name = "scriva"
5
+ spec.version = Scriva::VERSION
6
+ spec.authors = ["srjn45"]
7
+ spec.email = ["29410402+srjn45@users.noreply.github.com"]
8
+ spec.summary = "Ruby gRPC client for ScrivaDB"
9
+ spec.description = "A thin, idiomatic Ruby wrapper over the ScrivaDB gRPC API."
10
+ spec.homepage = "https://github.com/srjn45/scriva"
11
+ spec.license = "MIT"
12
+ spec.required_ruby_version = ">= 3.1"
13
+
14
+ spec.files = Dir["lib/**/*.rb"] + ["README.md", "scriva.gemspec"]
15
+ spec.require_paths = ["lib"]
16
+
17
+ spec.add_dependency "grpc", "~> 1.60"
18
+ spec.add_dependency "google-protobuf", "~> 3.25"
19
+
20
+ spec.metadata["homepage_uri"] = spec.homepage
21
+ spec.metadata["source_code_uri"] = "https://github.com/srjn45/scriva/tree/main/clients/ruby"
22
+ end
metadata ADDED
@@ -0,0 +1,80 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: scriva
3
+ version: !ruby/object:Gem::Version
4
+ version: 1.2.1
5
+ platform: ruby
6
+ authors:
7
+ - srjn45
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2026-07-23 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: grpc
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: '1.60'
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: '1.60'
27
+ - !ruby/object:Gem::Dependency
28
+ name: google-protobuf
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: '3.25'
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: '3.25'
41
+ description: A thin, idiomatic Ruby wrapper over the ScrivaDB gRPC API.
42
+ email:
43
+ - 29410402+srjn45@users.noreply.github.com
44
+ executables: []
45
+ extensions: []
46
+ extra_rdoc_files: []
47
+ files:
48
+ - README.md
49
+ - lib/scriva.rb
50
+ - lib/scriva/client.rb
51
+ - lib/scriva/proto/scriva_pb.rb
52
+ - lib/scriva/proto/scriva_services_pb.rb
53
+ - lib/scriva/version.rb
54
+ - scriva.gemspec
55
+ homepage: https://github.com/srjn45/scriva
56
+ licenses:
57
+ - MIT
58
+ metadata:
59
+ homepage_uri: https://github.com/srjn45/scriva
60
+ source_code_uri: https://github.com/srjn45/scriva/tree/main/clients/ruby
61
+ post_install_message:
62
+ rdoc_options: []
63
+ require_paths:
64
+ - lib
65
+ required_ruby_version: !ruby/object:Gem::Requirement
66
+ requirements:
67
+ - - ">="
68
+ - !ruby/object:Gem::Version
69
+ version: '3.1'
70
+ required_rubygems_version: !ruby/object:Gem::Requirement
71
+ requirements:
72
+ - - ">="
73
+ - !ruby/object:Gem::Version
74
+ version: '0'
75
+ requirements: []
76
+ rubygems_version: 3.5.22
77
+ signing_key:
78
+ specification_version: 4
79
+ summary: Ruby gRPC client for ScrivaDB
80
+ test_files: []