Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ jobs:
- run: npm ci
- run: npm version --no-git-tag-version ${{ github.event.release.tag_name }}
- run: npx tsc
- run: env NPM_CONFIG_//registry.npmjs.org/:_authToken=${{ secrets.NPM_TOKEN }} npm publish --access public
- run: env NPM_CONFIG_//registry.npmjs.org/:_authToken=${{ secrets.NPM_TOKEN }} npm publish --access public --tag ${{ case(github.event.release.prerelease, 'next', 'latest') }}
- run: poetry version $(poetry version -s --dry-run ${{ github.event.release.tag_name }})
- run: POETRY_PYPI_TOKEN_PYPI=${{ secrets.PYPI_TOKEN }} poetry publish --build

Expand Down
47 changes: 27 additions & 20 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -20,18 +20,22 @@ import (
"github.com/auth0/go-jwt-middleware/v2"
"github.com/auth0/go-jwt-middleware/v2/jwks"
"github.com/auth0/go-jwt-middleware/v2/validator"
"github.com/elimity-com/insights-sdk"
commonv1alpha1 "github.com/elimity-com/insights-sdk/gen/elimity/insights/common/v1alpha1"
customgatewayv1alpha1 "github.com/elimity-com/insights-sdk/gen/elimity/insights/customgateway/v1alpha1"
"github.com/elimity-com/insights-sdk/v2"
"github.com/elimity-com/insights-sdk/v2/gen/elimity/insights/common/v1alpha1"
"github.com/elimity-com/insights-sdk/v2/gen/elimity/insights/customgateway/v1alpha2"
"iter"
"log"
"net/http"
"net/url"
"os"
)

func generateResponses(bytes []byte) iter.Seq2[*customgatewayv1alpha1.PerformImportResponse, error] {
return responseGenerator{bytes: bytes}.generate
func generateResponses(bytes []byte, cursor any) iter.Seq2[*v1alpha2.PerformImportResponse, error] {
generator := responseGenerator{
bytes: bytes,
cursor: cursor,
}
return generator.generate
}

func makeClaims() validator.CustomClaims {
Expand All @@ -44,7 +48,7 @@ func main() {
audiences := []string{"gateway"}
option := validator.WithCustomClaims(makeClaims)
validator, _ := validator.New(provider.KeyFunc, "RS256", "https://auth.elimity.com/", audiences, option)
innerHandler := insightssdk.Handler(generateResponses)
innerHandler := insightssdk.Handler(generateResponses, nil, "v1.0.0")
outerHandler := jwtmiddleware.New(validator.ValidateToken).CheckJWT(innerHandler)
err := http.ListenAndServe(":8080", outerHandler)
log.Fatal(err)
Expand All @@ -71,24 +75,25 @@ func (c *claims) Validate(context.Context) error {
}

type responseGenerator struct {
bytes []byte
bytes []byte
cursor any
}

func (g responseGenerator) generate(yield func(*customgatewayv1alpha1.PerformImportResponse, error) bool) {
func (g responseGenerator) generate(yield func(*v1alpha2.PerformImportResponse, error) bool) {
var request request
if err := json.Unmarshal(g.bytes, &request); err != nil {
err := fmt.Errorf("failed unmarshalling request: %v", err)
yield(nil, err)
return
}
info := &customgatewayv1alpha1.Level_Info{}
level := &customgatewayv1alpha1.Level{Value: info}
log := &customgatewayv1alpha1.Log{
info := &v1alpha2.Level_Info{}
level := &v1alpha2.Level{Value: info}
log := &v1alpha2.Log{
Level: level,
Message: "Reading directory contents",
}
lo := &customgatewayv1alpha1.PerformImportResponse_Log{Log: log}
response := &customgatewayv1alpha1.PerformImportResponse{Value: lo}
lo := &v1alpha2.PerformImportResponse_Log{Log: log}
response := &v1alpha2.PerformImportResponse{Value: lo}
if !yield(response, nil) {
return
}
Expand All @@ -100,13 +105,13 @@ func (g responseGenerator) generate(yield func(*customgatewayv1alpha1.PerformImp
}
for _, entry := range entries {
name := entry.Name()
entity := &commonv1alpha1.Entity{
entity := &v1alpha1.Entity{
Id: name,
Name: name,
Type: "file",
}
ent := &customgatewayv1alpha1.PerformImportResponse_Entity{Entity: entity}
response := &customgatewayv1alpha1.PerformImportResponse{Value: ent}
ent := &v1alpha2.PerformImportResponse_Entity{Entity: entity}
response := &v1alpha2.PerformImportResponse{Value: ent}
if !yield(response, nil) {
return
}
Expand All @@ -129,6 +134,7 @@ import { readdir } from "node:fs/promises";
import { z } from "zod";

async function* generateItems(
cursor: JsonValue,
fields: Record<string, JsonValue>,
): AsyncGenerator<Item> {
const request = z.strictObject({ path: z.string() }).parse(fields);
Expand Down Expand Up @@ -161,7 +167,7 @@ const config = {
validators,
};
const authHandler = auth(config);
const sdkHandler = handler(generateItems);
const sdkHandler = handler(generateItems, null, "v1.0.0");
express().use(authHandler, sdkHandler).listen(8080);
```

Expand Down Expand Up @@ -204,15 +210,15 @@ class _Request(BaseModel):
path: str


async def _generate_items(fields: dict[str, object]) -> AsyncIterator[Item]:
async def _generate_items(cursor: object, fields: dict[str, object]) -> AsyncIterator[Item]:
request = _Request.model_validate(fields)
yield LogItem(Level.INFO, "Reading directory contents")
for file in listdir(request.path):
assignments: dict[str, Value] = {}
yield EntityItem(assignments, file, file, "file")


_app = app(_generate_items)
_app = app(_generate_items, None, "v1.0.0")
_middleware = _Middleware(_app)
run(_middleware)
```
Expand All @@ -222,7 +228,7 @@ run(_middleware)
### Go

```sh
$ go get github.com/elimity-com/insights-sdk
$ go get github.com/elimity-com/insights-sdk/v2
```

### NodeJS
Expand All @@ -242,3 +248,4 @@ $ pip install elimity-insights-sdk
| SDK version | Insights version |
| ----------- | ---------------- |
| 1 | >=3.42 |
| 2 | >=3.46 |
9 changes: 5 additions & 4 deletions gen/elimity/insights/common/v1alpha1/common.pb.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion gen/elimity/insights/common/v1alpha1/common_pb.ts
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ import type { Message } from "@bufbuild/protobuf";
* Describes the file elimity/insights/common/v1alpha1/common.proto.
*/
export const file_elimity_insights_common_v1alpha1_common: GenFile = /*@__PURE__*/
fileDesc("Ci1lbGltaXR5L2luc2lnaHRzL2NvbW1vbi92MWFscGhhMS9jb21tb24ucHJvdG8SIGVsaW1pdHkuaW5zaWdodHMuY29tbW9uLnYxYWxwaGExIvkBCgZFbnRpdHkSYQoVYXR0cmlidXRlX2Fzc2lnbm1lbnRzGAEgAygLMkIuZWxpbWl0eS5pbnNpZ2h0cy5jb21tb24udjFhbHBoYTEuRW50aXR5LkF0dHJpYnV0ZUFzc2lnbm1lbnRzRW50cnkSCgoCaWQYAiABKAkSDAoEbmFtZRgDIAEoCRIMCgR0eXBlGAQgASgJGmQKGUF0dHJpYnV0ZUFzc2lnbm1lbnRzRW50cnkSCwoDa2V5GAEgASgJEjYKBXZhbHVlGAIgASgLMicuZWxpbWl0eS5pbnNpZ2h0cy5jb21tb24udjFhbHBoYTEuVmFsdWU6AjgBIr0CCgxSZWxhdGlvbnNoaXASZwoVYXR0cmlidXRlX2Fzc2lnbm1lbnRzGAEgAygLMkguZWxpbWl0eS5pbnNpZ2h0cy5jb21tb24udjFhbHBoYTEuUmVsYXRpb25zaGlwLkF0dHJpYnV0ZUFzc2lnbm1lbnRzRW50cnkSFgoOZnJvbV9lbnRpdHlfaWQYAiABKAkSGAoQZnJvbV9lbnRpdHlfdHlwZRgDIAEoCRIUCgx0b19lbnRpdHlfaWQYBCABKAkSFgoOdG9fZW50aXR5X3R5cGUYBSABKAkaZAoZQXR0cmlidXRlQXNzaWdubWVudHNFbnRyeRILCgNrZXkYASABKAkSNgoFdmFsdWUYAiABKAsyJy5lbGltaXR5Lmluc2lnaHRzLmNvbW1vbi52MWFscGhhMS5WYWx1ZToCOAEi0AEKBVZhbHVlEhEKB2Jvb2xlYW4YASABKAhIABIqCgRkYXRlGAIgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEgAEi8KCWRhdGVfdGltZRgDIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBIABIQCgZudW1iZXIYBCABKAFIABIQCgZzdHJpbmcYBSABKAlIABIqCgR0aW1lGAYgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEgAQgcKBXZhbHVlQkpaSGdpdGh1Yi5jb20vZWxpbWl0eS1jb20vaW5zaWdodHMtc2RrL2dlbi9lbGltaXR5L2luc2lnaHRzL2NvbW1vbi92MWFscGhhMWIGcHJvdG8z", [file_google_protobuf_timestamp]);
fileDesc("Ci1lbGltaXR5L2luc2lnaHRzL2NvbW1vbi92MWFscGhhMS9jb21tb24ucHJvdG8SIGVsaW1pdHkuaW5zaWdodHMuY29tbW9uLnYxYWxwaGExIvkBCgZFbnRpdHkSYQoVYXR0cmlidXRlX2Fzc2lnbm1lbnRzGAEgAygLMkIuZWxpbWl0eS5pbnNpZ2h0cy5jb21tb24udjFhbHBoYTEuRW50aXR5LkF0dHJpYnV0ZUFzc2lnbm1lbnRzRW50cnkSCgoCaWQYAiABKAkSDAoEbmFtZRgDIAEoCRIMCgR0eXBlGAQgASgJGmQKGUF0dHJpYnV0ZUFzc2lnbm1lbnRzRW50cnkSCwoDa2V5GAEgASgJEjYKBXZhbHVlGAIgASgLMicuZWxpbWl0eS5pbnNpZ2h0cy5jb21tb24udjFhbHBoYTEuVmFsdWU6AjgBIr0CCgxSZWxhdGlvbnNoaXASZwoVYXR0cmlidXRlX2Fzc2lnbm1lbnRzGAEgAygLMkguZWxpbWl0eS5pbnNpZ2h0cy5jb21tb24udjFhbHBoYTEuUmVsYXRpb25zaGlwLkF0dHJpYnV0ZUFzc2lnbm1lbnRzRW50cnkSFgoOZnJvbV9lbnRpdHlfaWQYAiABKAkSGAoQZnJvbV9lbnRpdHlfdHlwZRgDIAEoCRIUCgx0b19lbnRpdHlfaWQYBCABKAkSFgoOdG9fZW50aXR5X3R5cGUYBSABKAkaZAoZQXR0cmlidXRlQXNzaWdubWVudHNFbnRyeRILCgNrZXkYASABKAkSNgoFdmFsdWUYAiABKAsyJy5lbGltaXR5Lmluc2lnaHRzLmNvbW1vbi52MWFscGhhMS5WYWx1ZToCOAEi0AEKBVZhbHVlEhEKB2Jvb2xlYW4YASABKAhIABIqCgRkYXRlGAIgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEgAEi8KCWRhdGVfdGltZRgDIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBIABIQCgZudW1iZXIYBCABKAFIABIQCgZzdHJpbmcYBSABKAlIABIqCgR0aW1lGAYgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEgAQgcKBXZhbHVlQk1aS2dpdGh1Yi5jb20vZWxpbWl0eS1jb20vaW5zaWdodHMtc2RrL3YyL2dlbi9lbGltaXR5L2luc2lnaHRzL2NvbW1vbi92MWFscGhhMWIGcHJvdG8z", [file_google_protobuf_timestamp]);

/**
* @generated from message elimity.insights.common.v1alpha1.Entity
Expand Down
4 changes: 2 additions & 2 deletions gen/elimity/insights/common/v1alpha1/common_pb2.py

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

1 change: 1 addition & 0 deletions gen/elimity/insights/customgateway/__init__.pyi
Original file line number Diff line number Diff line change
@@ -1 +1,2 @@
from . import v1alpha1
from . import v1alpha2
13 changes: 7 additions & 6 deletions gen/elimity/insights/customgateway/v1alpha1/customgateway.pb.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ import type { Message } from "@bufbuild/protobuf";
* Describes the file elimity/insights/customgateway/v1alpha1/customgateway.proto.
*/
export const file_elimity_insights_customgateway_v1alpha1_customgateway: GenFile = /*@__PURE__*/
fileDesc("CjtlbGltaXR5L2luc2lnaHRzL2N1c3RvbWdhdGV3YXkvdjFhbHBoYTEvY3VzdG9tZ2F0ZXdheS5wcm90bxInZWxpbWl0eS5pbnNpZ2h0cy5jdXN0b21nYXRld2F5LnYxYWxwaGExImEKBUxldmVsEicKBWFsZXJ0GAEgASgLMhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5SAASJgoEaW5mbxgCIAEoCzIWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eUgAQgcKBXZhbHVlIlUKA0xvZxI9CgVsZXZlbBgBIAEoCzIuLmVsaW1pdHkuaW5zaWdodHMuY3VzdG9tZ2F0ZXdheS52MWFscGhhMS5MZXZlbBIPCgdtZXNzYWdlGAIgASgJIrgBChRQZXJmb3JtSW1wb3J0UmVxdWVzdBJZCgZmaWVsZHMYASADKAsySS5lbGltaXR5Lmluc2lnaHRzLmN1c3RvbWdhdGV3YXkudjFhbHBoYTEuUGVyZm9ybUltcG9ydFJlcXVlc3QuRmllbGRzRW50cnkaRQoLRmllbGRzRW50cnkSCwoDa2V5GAEgASgJEiUKBXZhbHVlGAIgASgLMhYuZ29vZ2xlLnByb3RvYnVmLlZhbHVlOgI4ASLhAQoVUGVyZm9ybUltcG9ydFJlc3BvbnNlEjoKBmVudGl0eRgBIAEoCzIoLmVsaW1pdHkuaW5zaWdodHMuY29tbW9uLnYxYWxwaGExLkVudGl0eUgAEjsKA2xvZxgCIAEoCzIsLmVsaW1pdHkuaW5zaWdodHMuY3VzdG9tZ2F0ZXdheS52MWFscGhhMS5Mb2dIABJGCgxyZWxhdGlvbnNoaXAYAyABKAsyLi5lbGltaXR5Lmluc2lnaHRzLmNvbW1vbi52MWFscGhhMS5SZWxhdGlvbnNoaXBIAEIHCgV2YWx1ZTKcAQoHU2VydmljZRKQAQoNUGVyZm9ybUltcG9ydBI9LmVsaW1pdHkuaW5zaWdodHMuY3VzdG9tZ2F0ZXdheS52MWFscGhhMS5QZXJmb3JtSW1wb3J0UmVxdWVzdBo+LmVsaW1pdHkuaW5zaWdodHMuY3VzdG9tZ2F0ZXdheS52MWFscGhhMS5QZXJmb3JtSW1wb3J0UmVzcG9uc2UwAUJRWk9naXRodWIuY29tL2VsaW1pdHktY29tL2luc2lnaHRzLXNkay9nZW4vZWxpbWl0eS9pbnNpZ2h0cy9jdXN0b21nYXRld2F5L3YxYWxwaGExYgZwcm90bzM", [file_elimity_insights_common_v1alpha1_common, file_google_protobuf_empty, file_google_protobuf_struct]);
fileDesc("CjtlbGltaXR5L2luc2lnaHRzL2N1c3RvbWdhdGV3YXkvdjFhbHBoYTEvY3VzdG9tZ2F0ZXdheS5wcm90bxInZWxpbWl0eS5pbnNpZ2h0cy5jdXN0b21nYXRld2F5LnYxYWxwaGExImEKBUxldmVsEicKBWFsZXJ0GAEgASgLMhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5SAASJgoEaW5mbxgCIAEoCzIWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eUgAQgcKBXZhbHVlIlUKA0xvZxI9CgVsZXZlbBgBIAEoCzIuLmVsaW1pdHkuaW5zaWdodHMuY3VzdG9tZ2F0ZXdheS52MWFscGhhMS5MZXZlbBIPCgdtZXNzYWdlGAIgASgJIrgBChRQZXJmb3JtSW1wb3J0UmVxdWVzdBJZCgZmaWVsZHMYASADKAsySS5lbGltaXR5Lmluc2lnaHRzLmN1c3RvbWdhdGV3YXkudjFhbHBoYTEuUGVyZm9ybUltcG9ydFJlcXVlc3QuRmllbGRzRW50cnkaRQoLRmllbGRzRW50cnkSCwoDa2V5GAEgASgJEiUKBXZhbHVlGAIgASgLMhYuZ29vZ2xlLnByb3RvYnVmLlZhbHVlOgI4ASLhAQoVUGVyZm9ybUltcG9ydFJlc3BvbnNlEjoKBmVudGl0eRgBIAEoCzIoLmVsaW1pdHkuaW5zaWdodHMuY29tbW9uLnYxYWxwaGExLkVudGl0eUgAEjsKA2xvZxgCIAEoCzIsLmVsaW1pdHkuaW5zaWdodHMuY3VzdG9tZ2F0ZXdheS52MWFscGhhMS5Mb2dIABJGCgxyZWxhdGlvbnNoaXAYAyABKAsyLi5lbGltaXR5Lmluc2lnaHRzLmNvbW1vbi52MWFscGhhMS5SZWxhdGlvbnNoaXBIAEIHCgV2YWx1ZTKcAQoHU2VydmljZRKQAQoNUGVyZm9ybUltcG9ydBI9LmVsaW1pdHkuaW5zaWdodHMuY3VzdG9tZ2F0ZXdheS52MWFscGhhMS5QZXJmb3JtSW1wb3J0UmVxdWVzdBo+LmVsaW1pdHkuaW5zaWdodHMuY3VzdG9tZ2F0ZXdheS52MWFscGhhMS5QZXJmb3JtSW1wb3J0UmVzcG9uc2UwAUJUWlJnaXRodWIuY29tL2VsaW1pdHktY29tL2luc2lnaHRzLXNkay92Mi9nZW4vZWxpbWl0eS9pbnNpZ2h0cy9jdXN0b21nYXRld2F5L3YxYWxwaGExYgZwcm90bzM", [file_elimity_insights_common_v1alpha1_common, file_google_protobuf_empty, file_google_protobuf_struct]);

/**
* @generated from message elimity.insights.customgateway.v1alpha1.Level
Expand Down
Loading
Loading