ae07fc0147
129: Index multivalued attributes. ( #128 )
...
This fixes #129 , by indexing each value of a multivalued attribute.
This handles at least the most common use case, so that we can search on a single value of the attribute.
```
❯ laconic -c ~/.laconic/local.yml cns record list --all --type ApplicationDeploymentRequest --tags b
[
{
"id": "bafyreidrp4pylixp44rkxu5il72qhwwc4ir5ctdnssps5rnelstloxivwm",
"names": null,
"owners": [
"FCCE01FCC2472AEDBCF33902907F33262445AC2C"
],
"bondId": "4ef470a9207f00fc07663623d092a14c310794b616eb53b085cfe6976e82f56d",
"createTime": "2023-12-18T22:13:23Z",
"expiryTime": "2024-12-17T22:13:23Z",
"attributes": {
"type": "ApplicationDeploymentRequest",
"version": "1.0.6",
"application": "crn://cerc-io/applications/test-progressive-web-app@0.1.1",
"config": {
"env": {
"CERC_WEBAPP_DEBUG": "57588a9d"
}
},
"tags": [
"a",
"b",
"c"
]
}
}
]
```
Reviewed-on: cerc-io/laconicd#128
Co-authored-by: Thomas E Lackey <telackey@bozemanpass.com>
Co-committed-by: Thomas E Lackey <telackey@bozemanpass.com>
2023-12-19 06:55:11 +00:00
880367d5df
122: Fix attribute index key collision ( #123 )
...
Fix #122 , where the structure of the index key allowed unintended collisions (see below).
This also adds a test cases which _fails_ under the old scheme, but passes now:
**Before:**
```
--- FAIL: TestKeeperTestSuite (0.31s)
--- FAIL: TestKeeperTestSuite/TestGrpcGetRecordLists (0.09s)
grpc_query_test.go:143:
Error Trace: /home/telackey/cerc/laconicd/x/registry/keeper/grpc_query_test.go:143
/home/telackey/cerc/laconicd/x/registry/keeper/suite.go:91
Error: Not equal:
expected: 0
actual : 1
Test: TestKeeperTestSuite/TestGrpcGetRecordLists
--- FAIL: TestKeeperTestSuite/TestGrpcGetRecordLists/Case_Filter_with_typ_(cerc-io/laconicd#122 )_ (0.00s)
testing.go:1490: test executed panic(nil) or runtime.Goexit: subtest may have called FailNow on a parent test
FAIL
FAIL github.com/cerc-io/laconicd/x/registry/keeper 0.765s
FAIL
make: *** [Makefile:333: run-tests] Error 1
❯ laconic cns record list --all --typ eWebsiteRegistrationRecord
[
{
"id": "bafyreies5he2mxyrjso2quewwlmh6cisekkjnf7yijpd2742wrzxgzuazi",
"names": null,
"owners": [
"FC9B9FB065D70DBB10C8F511348421C16669B37D"
],
"bondId": "a9c7161fc154cf44ee61efc699a59c8a27c804bb23ce4c8a7ffa0a39fcc540b1",
"createTime": "2023-11-28T19:09:03Z",
"expiryTime": "2024-11-27T19:09:03Z",
"attributes": {
"url": "https://hello-urbit.laconic.com ",
"repo_registration_record_cid": "QmTZQ8ZJS6mALjEM2wY71msFno6zzxFftVCiZELj9xREPx",
"build_artifact_cid": "~lostex-rabdur-labtul-moltev/hello-urbit",
"tls_cert_cid": "QmR1acEmQt7Tjmhp9cFtymie2eFcrHURQKt9kGto1TQTW1",
"type": "WebsiteRegistrationRecord",
"version": "0.2.4"
}
}
...
❯ laconic cns record list --all --type WebsiteRegistrationRecord
[
{
"id": "bafyreies5he2mxyrjso2quewwlmh6cisekkjnf7yijpd2742wrzxgzuazi",
"names": null,
"owners": [
"FC9B9FB065D70DBB10C8F511348421C16669B37D"
],
"bondId": "a9c7161fc154cf44ee61efc699a59c8a27c804bb23ce4c8a7ffa0a39fcc540b1",
"createTime": "2023-11-28T19:09:03Z",
"expiryTime": "2024-11-27T19:09:03Z",
"attributes": {
"url": "https://hello-urbit.laconic.com ",
"repo_registration_record_cid": "QmTZQ8ZJS6mALjEM2wY71msFno6zzxFftVCiZELj9xREPx",
"build_artifact_cid": "~lostex-rabdur-labtul-moltev/hello-urbit",
"tls_cert_cid": "QmR1acEmQt7Tjmhp9cFtymie2eFcrHURQKt9kGto1TQTW1",
"type": "WebsiteRegistrationRecord",
"version": "0.2.4"
}
}
...
```
**After:**
```
ok github.com/cerc-io/laconicd/x/registry/keeper 1.573s
❯ laconic cns record list --all --typ eWebsiteRegistrationRecord
[]
❯ laconic cns record list --all --type WebsiteRegistrationRecord
[
{
"id": "bafyreies5he2mxyrjso2quewwlmh6cisekkjnf7yijpd2742wrzxgzuazi",
"names": null,
"owners": [
"FC9B9FB065D70DBB10C8F511348421C16669B37D"
],
"bondId": "a9c7161fc154cf44ee61efc699a59c8a27c804bb23ce4c8a7ffa0a39fcc540b1",
"createTime": "2023-11-28T19:09:03Z",
"expiryTime": "2024-11-27T19:09:03Z",
"attributes": {
"url": "https://hello-urbit.laconic.com ",
"repo_registration_record_cid": "QmTZQ8ZJS6mALjEM2wY71msFno6zzxFftVCiZELj9xREPx",
"build_artifact_cid": "~lostex-rabdur-labtul-moltev/hello-urbit",
"tls_cert_cid": "QmR1acEmQt7Tjmhp9cFtymie2eFcrHURQKt9kGto1TQTW1",
"type": "WebsiteRegistrationRecord",
"version": "0.2.4"
}
}
...
```
Reviewed-on: cerc-io/laconicd#123
Co-authored-by: Thomas E Lackey <telackey@bozemanpass.com>
Co-committed-by: Thomas E Lackey <telackey@bozemanpass.com>
2023-11-29 00:05:56 +00:00