Add new record types ApplicationRecord, WebAppDeploymentRecord, GeneralRecord #44

Merged
telackey merged 2 commits from telackey/newtypes into main 2023-11-20 22:01:19 +00:00
Member

See also: cerc-io/laconicd#113

image

message ApplicationRecord {
  string type           = 1 [(gogoproto.moretags) = "json:\"type\" yaml:\"type\""];
  string name           = 2 [(gogoproto.moretags) = "json:\"name\" yaml:\"name\""];
  string description    = 3 [(gogoproto.moretags) = "json:\"description\" yaml:\"description\""];
  string version        = 4 [(gogoproto.moretags) = "json:\"version\" yaml:\"version\""];
  string homepage       = 5 [(gogoproto.moretags) = "json:\"homepage\" yaml:\"homepage\""];
  string license        = 6 [(gogoproto.moretags) = "json:\"license\" yaml:\"license\""];
  string author         = 7 [(gogoproto.moretags) = "json:\"author\" yaml:\"author\""];
  string repository     = 8 [(gogoproto.moretags) = "json:\"repository\" yaml:\"repository\""];
  string repository_tag = 9 [(gogoproto.moretags) = "json:\"repositoryTag\" yaml:\"repositoryTag\""];
  string app_version    = 10 [(gogoproto.moretags) = "json:\"appVersion\" yaml:\"appVersion\""];
  string app_type       = 11 [(gogoproto.moretags) = "json:\"appType\" yaml:\"appType\""];
  string meta           = 20 [(gogoproto.moretags) = "json:\"meta\" yaml:\"meta\""];
  repeated string tags  = 21 [(gogoproto.moretags) = "json:\"tags\" yaml:\"tags\""];
}

message WebAppDeploymentRecord {
  string type           = 1 [(gogoproto.moretags) = "json:\"type\" yaml:\"type\""];
  string name           = 2 [(gogoproto.moretags) = "json:\"name\" yaml:\"name\""];
  string description    = 3 [(gogoproto.moretags) = "json:\"description\" yaml:\"description\""];
  string version        = 4 [(gogoproto.moretags) = "json:\"version\" yaml:\"version\""];
  string application    = 5 [(gogoproto.moretags) = "json:\"application\" yaml:\"application\""];
  string url            = 6 [(gogoproto.moretags) = "json:\"\" yaml:\"name\""];
  string meta           = 20 [(gogoproto.moretags) = "json:\"meta\" yaml:\"meta\""];
  repeated string tags  = 21 [(gogoproto.moretags) = "json:\"tags\" yaml:\"tags\""];
}

message GeneralRecord {
  string type           = 1 [(gogoproto.moretags) = "json:\"type\" yaml:\"type\""];
  string name           = 2 [(gogoproto.moretags) = "json:\"name\" yaml:\"name\""];
  string description    = 3 [(gogoproto.moretags) = "json:\"description\" yaml:\"description\""];
  string version        = 4 [(gogoproto.moretags) = "json:\"version\" yaml:\"version\""];
  string category       = 5 [(gogoproto.moretags) = "json:\"category\" yaml:\"category\""];
  string value          = 6 [(gogoproto.moretags) = "json:\"value\" yaml:\"value\""];
  string meta           = 20 [(gogoproto.moretags) = "json:\"meta\" yaml:\"meta\""];
  repeated string tags  = 21 [(gogoproto.moretags) = "json:\"tags\" yaml:\"tags\""];
❯ cat general.yml
record:
  type: GeneralRecord
  name: my-generic-record
  version: 0.0.1
  value: "anything-goes-here"
  category: filter-by-this
  tags:
    - a
    - b
    - c
  meta:
    foo: bar
    bar:
      baz: boz

❯ bin/laconic cns record publish --filename general.yml --bond-id ba774084e25af5b29be126dda0bb910d93dea3634713a438ac257da5bbdc631c
{
  "id": "bafyreigt3he52eia5g4i5pnst4dfcuwwgjdoul6xmcke2obz5os4xwoo3q"
}

❯ bin/laconic cns record get --id bafyreigt3he52eia5g4i5pnst4dfcuwwgjdoul6xmcke2obz5os4xwoo3q
[
  {
    "id": "bafyreigt3he52eia5g4i5pnst4dfcuwwgjdoul6xmcke2obz5os4xwoo3q",
    "names": null,
    "owners": [
      "9A66500A9AA574CAAB4EDB26F7333590BF452CE0"
    ],
    "bondId": "ba774084e25af5b29be126dda0bb910d93dea3634713a438ac257da5bbdc631c",
    "createTime": "2023-11-17T23:11:27Z",
    "expiryTime": "2024-11-16T23:11:27Z",
    "attributes": {
      "meta": "{\"foo\":\"bar\",\"bar\":{\"baz\":\"boz\"}}",
      "tags": [
        "a",
        "b",
        "c"
      ],
      "type": "GeneralRecord",
      "name": "my-generic-record",
      "version": "0.0.1",
      "category": "filter-by-this",
      "value": "anything-goes-here"
    }
  }
]

Note: The repeated items are preserved as lists, but the object/map ends up encoded as a string. It would be nice to avoid this.

See also: https://git.vdb.to/cerc-io/laconicd/pulls/113 ![image](/attachments/db05bbb6-86ca-4fbb-a8a4-fcd06501b1b1) ``` message ApplicationRecord { string type = 1 [(gogoproto.moretags) = "json:\"type\" yaml:\"type\""]; string name = 2 [(gogoproto.moretags) = "json:\"name\" yaml:\"name\""]; string description = 3 [(gogoproto.moretags) = "json:\"description\" yaml:\"description\""]; string version = 4 [(gogoproto.moretags) = "json:\"version\" yaml:\"version\""]; string homepage = 5 [(gogoproto.moretags) = "json:\"homepage\" yaml:\"homepage\""]; string license = 6 [(gogoproto.moretags) = "json:\"license\" yaml:\"license\""]; string author = 7 [(gogoproto.moretags) = "json:\"author\" yaml:\"author\""]; string repository = 8 [(gogoproto.moretags) = "json:\"repository\" yaml:\"repository\""]; string repository_tag = 9 [(gogoproto.moretags) = "json:\"repositoryTag\" yaml:\"repositoryTag\""]; string app_version = 10 [(gogoproto.moretags) = "json:\"appVersion\" yaml:\"appVersion\""]; string app_type = 11 [(gogoproto.moretags) = "json:\"appType\" yaml:\"appType\""]; string meta = 20 [(gogoproto.moretags) = "json:\"meta\" yaml:\"meta\""]; repeated string tags = 21 [(gogoproto.moretags) = "json:\"tags\" yaml:\"tags\""]; } message WebAppDeploymentRecord { string type = 1 [(gogoproto.moretags) = "json:\"type\" yaml:\"type\""]; string name = 2 [(gogoproto.moretags) = "json:\"name\" yaml:\"name\""]; string description = 3 [(gogoproto.moretags) = "json:\"description\" yaml:\"description\""]; string version = 4 [(gogoproto.moretags) = "json:\"version\" yaml:\"version\""]; string application = 5 [(gogoproto.moretags) = "json:\"application\" yaml:\"application\""]; string url = 6 [(gogoproto.moretags) = "json:\"\" yaml:\"name\""]; string meta = 20 [(gogoproto.moretags) = "json:\"meta\" yaml:\"meta\""]; repeated string tags = 21 [(gogoproto.moretags) = "json:\"tags\" yaml:\"tags\""]; } message GeneralRecord { string type = 1 [(gogoproto.moretags) = "json:\"type\" yaml:\"type\""]; string name = 2 [(gogoproto.moretags) = "json:\"name\" yaml:\"name\""]; string description = 3 [(gogoproto.moretags) = "json:\"description\" yaml:\"description\""]; string version = 4 [(gogoproto.moretags) = "json:\"version\" yaml:\"version\""]; string category = 5 [(gogoproto.moretags) = "json:\"category\" yaml:\"category\""]; string value = 6 [(gogoproto.moretags) = "json:\"value\" yaml:\"value\""]; string meta = 20 [(gogoproto.moretags) = "json:\"meta\" yaml:\"meta\""]; repeated string tags = 21 [(gogoproto.moretags) = "json:\"tags\" yaml:\"tags\""]; ``` ``` ❯ cat general.yml record: type: GeneralRecord name: my-generic-record version: 0.0.1 value: "anything-goes-here" category: filter-by-this tags: - a - b - c meta: foo: bar bar: baz: boz ❯ bin/laconic cns record publish --filename general.yml --bond-id ba774084e25af5b29be126dda0bb910d93dea3634713a438ac257da5bbdc631c { "id": "bafyreigt3he52eia5g4i5pnst4dfcuwwgjdoul6xmcke2obz5os4xwoo3q" } ❯ bin/laconic cns record get --id bafyreigt3he52eia5g4i5pnst4dfcuwwgjdoul6xmcke2obz5os4xwoo3q [ { "id": "bafyreigt3he52eia5g4i5pnst4dfcuwwgjdoul6xmcke2obz5os4xwoo3q", "names": null, "owners": [ "9A66500A9AA574CAAB4EDB26F7333590BF452CE0" ], "bondId": "ba774084e25af5b29be126dda0bb910d93dea3634713a438ac257da5bbdc631c", "createTime": "2023-11-17T23:11:27Z", "expiryTime": "2024-11-16T23:11:27Z", "attributes": { "meta": "{\"foo\":\"bar\",\"bar\":{\"baz\":\"boz\"}}", "tags": [ "a", "b", "c" ], "type": "GeneralRecord", "name": "my-generic-record", "version": "0.0.1", "category": "filter-by-this", "value": "anything-goes-here" } } ] ``` > Note: The repeated items are preserved as lists, but the object/map ends up encoded as a string. It would be nice to avoid this.
telackey added the
enhancement
label 2023-11-17 20:49:17 +00:00
telackey added 1 commit 2023-11-17 20:49:18 +00:00
Add new record types ApplicationRecord, WebAppDeploymentRecord, GeneralRecord
All checks were successful
Tests / sdk_tests (pull_request) Successful in 21m28s
06e6919f10
telackey requested review from dboreham 2023-11-17 20:49:42 +00:00
telackey added 1 commit 2023-11-17 21:35:59 +00:00
More fields
All checks were successful
Tests / sdk_tests (pull_request) Successful in 21m17s
e01004c736
dboreham approved these changes 2023-11-20 16:38:38 +00:00
telackey changed title from WIP: Add new record types ApplicationRecord, WebAppDeploymentRecord, GeneralRecord to Add new record types ApplicationRecord, WebAppDeploymentRecord, GeneralRecord 2023-11-20 22:00:35 +00:00
telackey merged commit b5fce86d48 into main 2023-11-20 22:01:19 +00:00
telackey deleted branch telackey/newtypes 2023-11-20 22:01:19 +00:00
Sign in to join this conversation.
No reviewers
No Milestone
No project
No Assignees
2 Participants
Notifications
Due Date
The due date is invalid or out of range. Please use the format 'yyyy-mm-dd'.

No due date set.

Dependencies

No dependencies set.

Reference: cerc-io/laconic-sdk#44
No description provided.