diff --git a/pkg/report/model.go b/pkg/report/model.go index a224e24d1..fe0872a48 100644 --- a/pkg/report/model.go +++ b/pkg/report/model.go @@ -34,6 +34,8 @@ type ( StepDefinitionSet []*StepDefinition StepDefinition struct { + Kind string `json:"kind,omitempty"` + Load *LoadStepDefinition `json:"load,omitempty"` Join *JoinStepDefinition `json:"join,omitempty"` Group *GroupStepDefinition `json:"group,omitempty"` diff --git a/system/types/report.go b/system/types/report.go index c82ebd208..724dfc426 100644 --- a/system/types/report.go +++ b/system/types/report.go @@ -32,16 +32,11 @@ type ( } ReportDataSource struct { - Name string `json:"name,omitempty"` - Groups []*ReportStepGroup + Meta interface{} `json:"meta,omitempty"` + Step *report.StepDefinition `json:"step"` } ReportDataSourceSet []*ReportDataSource - ReportStepGroup struct { - Name string `json:"name,omitempty"` - Steps report.StepDefinitionSet `json:"steps"` - } - ReportMeta struct { Name string `json:"name"` Description string `json:"description"` @@ -87,9 +82,7 @@ func (ss ReportDataSourceSet) ModelSteps() report.StepDefinitionSet { out := make(report.StepDefinitionSet, 0, 124) for _, s := range ss { - for _, g := range s.Groups { - out = append(out, g.Steps...) - } + out = append(out, s.Step) } return out diff --git a/tests/reporter/testdata/S0001_describe_basic/report.json b/tests/reporter/testdata/S0001_describe_basic/report.json index 7f60f358a..5f2f8f83d 100644 --- a/tests/reporter/testdata/S0001_describe_basic/report.json +++ b/tests/reporter/testdata/S0001_describe_basic/report.json @@ -1,38 +1,29 @@ { "handle": "testing_report", - "sources": [{ - "name": "unnamed_src", - "groups": [ - { - "name": "unnamed_grp", - "steps": [ - { "load": { - "name": "users", - "source": "composeRecords", - "definition": { - "module": "user", - "namespace": "ns" - } - }}, - { "load": { - "name": "jobs", - "source": "composeRecords", - "definition": { - "module": "job", - "namespace": "ns" - } - }}, - - { "join": { - "name": "joined", - "localSource": "users", - "localColumn": "join_key", - "foreignSource": "jobs", - "foreignColumn": "usr" - }} - ] + "sources": [ + { "step": { "load": { + "name": "users", + "source": "composeRecords", + "definition": { + "module": "user", + "namespace": "ns" } - ] - }], + }}}, + { "step": { "load": { + "name": "jobs", + "source": "composeRecords", + "definition": { + "module": "job", + "namespace": "ns" + } + }}}, + { "step": { "join": { + "name": "joined", + "localSource": "users", + "localColumn": "join_key", + "foreignSource": "jobs", + "foreignColumn": "usr" + }}} + ], "describe": ["users", "jobs", "joined"] } diff --git a/tests/reporter/testdata/S1001_loading_basic/report.json b/tests/reporter/testdata/S1001_loading_basic/report.json index 47ccafd2e..26f4dd6b5 100644 --- a/tests/reporter/testdata/S1001_loading_basic/report.json +++ b/tests/reporter/testdata/S1001_loading_basic/report.json @@ -1,23 +1,14 @@ { "handle": "testing_report", "sources": [{ - "name": "unnamed_src", - "groups": [ - { - "name": "unnamed_grp", - "steps": [ - { "load": { - "name": "users", - "source": "composeRecords", - "definition": { - "module": "user", - "namespace": "ns" - } - }} - ] + "step": { "load": { + "name": "users", + "source": "composeRecords", + "definition": { + "module": "user", + "namespace": "ns" } - ] - }], + }}}], "frames": [{ "name": "result", "source": "users", diff --git a/tests/reporter/testdata/S1002_loading_filtering/report.json b/tests/reporter/testdata/S1002_loading_filtering/report.json index 5271b08bd..76d7180b8 100644 --- a/tests/reporter/testdata/S1002_loading_filtering/report.json +++ b/tests/reporter/testdata/S1002_loading_filtering/report.json @@ -1,23 +1,14 @@ { "handle": "testing_report", "sources": [{ - "name": "unnamed_src", - "groups": [ - { - "name": "unnamed_grp", - "steps": [ - { "load": { - "name": "users", - "source": "composeRecords", - "definition": { - "module": "user", - "namespace": "ns" - } - }} - ] + "step": { "load": { + "name": "users", + "source": "composeRecords", + "definition": { + "module": "user", + "namespace": "ns" } - ] - }], + }}}], "frames": [{ "name": "result", "source": "users", diff --git a/tests/reporter/testdata/S1003_loading_sorting/report.json b/tests/reporter/testdata/S1003_loading_sorting/report.json index aa111be3e..89217b659 100644 --- a/tests/reporter/testdata/S1003_loading_sorting/report.json +++ b/tests/reporter/testdata/S1003_loading_sorting/report.json @@ -1,23 +1,14 @@ { "handle": "testing_report", "sources": [{ - "name": "unnamed_src", - "groups": [ - { - "name": "unnamed_grp", - "steps": [ - { "load": { - "name": "users", - "source": "composeRecords", - "definition": { - "module": "user", - "namespace": "ns" - } - }} - ] + "step": { "load": { + "name": "users", + "source": "composeRecords", + "definition": { + "module": "user", + "namespace": "ns" } - ] - }], + }}}], "frames": [{ "name": "result", "source": "users", diff --git a/tests/reporter/testdata/S1004_loading_paging/report.json b/tests/reporter/testdata/S1004_loading_paging/report.json index f5bab2d71..081ab4655 100644 --- a/tests/reporter/testdata/S1004_loading_paging/report.json +++ b/tests/reporter/testdata/S1004_loading_paging/report.json @@ -1,23 +1,14 @@ { "handle": "testing_report", "sources": [{ - "name": "unnamed_src", - "groups": [ - { - "name": "unnamed_grp", - "steps": [ - { "load": { - "name": "users", - "source": "composeRecords", - "definition": { - "module": "user", - "namespace": "ns" - } - }} - ] + "step": { "load": { + "name": "users", + "source": "composeRecords", + "definition": { + "module": "user", + "namespace": "ns" } - ] - }], + }}}], "frames": [{ "name": "result", "source": "users", diff --git a/tests/reporter/testdata/S2001_grouping_basic/report.json b/tests/reporter/testdata/S2001_grouping_basic/report.json index 57ca0c713..2d7286f59 100644 --- a/tests/reporter/testdata/S2001_grouping_basic/report.json +++ b/tests/reporter/testdata/S2001_grouping_basic/report.json @@ -1,35 +1,27 @@ { "handle": "testing_report", - "sources": [{ - "name": "unnamed_src", - "groups": [ - { - "name": "unnamed_grp", - "steps": [ - { "load": { - "name": "users", - "source": "composeRecords", - "definition": { - "module": "user", - "namespace": "ns" - } - }}, - - { "group": { - "name": "grouped", - "source": "users", - "keys": [ - { "name": "by_name", "column": "first_name" } - ], - "columns": [ - { "name": "count", "aggregate": "count" }, - { "name": "total", "aggregate": "sum", "column": "number_of_numbers" } - ] - }} - ] + "sources": [ + { "step": { "load": { + "name": "users", + "source": "composeRecords", + "definition": { + "module": "user", + "namespace": "ns" } - ] - }], + }}}, + + { "step": { "group": { + "name": "grouped", + "source": "users", + "keys": [ + { "name": "by_name", "column": "first_name" } + ], + "columns": [ + { "name": "count", "aggregate": "count" }, + { "name": "total", "aggregate": "sum", "column": "number_of_numbers" } + ] + }}} + ], "frames": [{ "name": "result", "source": "grouped", diff --git a/tests/reporter/testdata/S2002_grouping_filtering/report.json b/tests/reporter/testdata/S2002_grouping_filtering/report.json index ec881ff7a..74a7ac5fb 100644 --- a/tests/reporter/testdata/S2002_grouping_filtering/report.json +++ b/tests/reporter/testdata/S2002_grouping_filtering/report.json @@ -1,35 +1,27 @@ { "handle": "testing_report", - "sources": [{ - "name": "unnamed_src", - "groups": [ - { - "name": "unnamed_grp", - "steps": [ - { "load": { - "name": "users", - "source": "composeRecords", - "definition": { - "module": "user", - "namespace": "ns" - } - }}, - - { "group": { - "name": "grouped", - "source": "users", - "keys": [ - { "name": "by_name", "column": "first_name" } - ], - "columns": [ - { "name": "count", "aggregate": "count" }, - { "name": "total", "aggregate": "sum", "column": "number_of_numbers" } - ] - }} - ] + "sources": [ + { "step": { "load": { + "name": "users", + "source": "composeRecords", + "definition": { + "module": "user", + "namespace": "ns" } - ] - }], + }}}, + + { "step": { "group": { + "name": "grouped", + "source": "users", + "keys": [ + { "name": "by_name", "column": "first_name" } + ], + "columns": [ + { "name": "count", "aggregate": "count" }, + { "name": "total", "aggregate": "sum", "column": "number_of_numbers" } + ] + }}} + ], "frames": [{ "name": "result", "source": "grouped", diff --git a/tests/reporter/testdata/S2003_grouping_sorting/report.json b/tests/reporter/testdata/S2003_grouping_sorting/report.json index d520e8fe3..56f21550f 100644 --- a/tests/reporter/testdata/S2003_grouping_sorting/report.json +++ b/tests/reporter/testdata/S2003_grouping_sorting/report.json @@ -1,35 +1,27 @@ { "handle": "testing_report", - "sources": [{ - "name": "unnamed_src", - "groups": [ - { - "name": "unnamed_grp", - "steps": [ - { "load": { - "name": "users", - "source": "composeRecords", - "definition": { - "module": "user", - "namespace": "ns" - } - }}, - - { "group": { - "name": "grouped", - "source": "users", - "keys": [ - { "name": "by_name", "column": "first_name" } - ], - "columns": [ - { "name": "count", "aggregate": "count" }, - { "name": "total", "aggregate": "sum", "column": "number_of_numbers" } - ] - }} - ] + "sources": [ + { "step": { "load": { + "name": "users", + "source": "composeRecords", + "definition": { + "module": "user", + "namespace": "ns" } - ] - }], + }}}, + + { "step": { "group": { + "name": "grouped", + "source": "users", + "keys": [ + { "name": "by_name", "column": "first_name" } + ], + "columns": [ + { "name": "count", "aggregate": "count" }, + { "name": "total", "aggregate": "sum", "column": "number_of_numbers" } + ] + }}} + ], "frames": [{ "name": "result", "source": "grouped", diff --git a/tests/reporter/testdata/S2004_grouping_paging/report.json b/tests/reporter/testdata/S2004_grouping_paging/report.json index d99bcec09..7bd68d2b3 100644 --- a/tests/reporter/testdata/S2004_grouping_paging/report.json +++ b/tests/reporter/testdata/S2004_grouping_paging/report.json @@ -1,35 +1,27 @@ { "handle": "testing_report", - "sources": [{ - "name": "unnamed_src", - "groups": [ - { - "name": "unnamed_grp", - "steps": [ - { "load": { - "name": "users", - "source": "composeRecords", - "definition": { - "module": "user", - "namespace": "ns" - } - }}, - - { "group": { - "name": "grouped", - "source": "users", - "keys": [ - { "name": "by_name", "column": "first_name" } - ], - "columns": [ - { "name": "count", "aggregate": "count" }, - { "name": "total", "aggregate": "sum", "column": "number_of_numbers" } - ] - }} - ] + "sources": [ + { "step": { "load": { + "name": "users", + "source": "composeRecords", + "definition": { + "module": "user", + "namespace": "ns" } - ] - }], + }}}, + + { "step": { "group": { + "name": "grouped", + "source": "users", + "keys": [ + { "name": "by_name", "column": "first_name" } + ], + "columns": [ + { "name": "count", "aggregate": "count" }, + { "name": "total", "aggregate": "sum", "column": "number_of_numbers" } + ] + }}} + ], "frames": [{ "name": "result", "source": "grouped", diff --git a/tests/reporter/testdata/S3001_joining_basic/report.json b/tests/reporter/testdata/S3001_joining_basic/report.json index fc8c483dd..48a0c4054 100644 --- a/tests/reporter/testdata/S3001_joining_basic/report.json +++ b/tests/reporter/testdata/S3001_joining_basic/report.json @@ -1,39 +1,30 @@ { "handle": "testing_report", - "sources": [{ - "name": "unnamed_src", - "groups": [ - { - "name": "unnamed_grp", - "steps": [ - { "load": { - "name": "users", - "source": "composeRecords", - "definition": { - "module": "user", - "namespace": "ns" - } - }}, - { "load": { - "name": "jobs", - "source": "composeRecords", - "definition": { - "module": "job", - "namespace": "ns" - } - }}, - - { "join": { - "name": "joined", - "localSource": "users", - "localColumn": "join_key", - "foreignSource": "jobs", - "foreignColumn": "usr" - }} - ] + "sources": [ + { "step": { "load": { + "name": "users", + "source": "composeRecords", + "definition": { + "module": "user", + "namespace": "ns" } - ] - }], + }}}, + { "step": { "load": { + "name": "jobs", + "source": "composeRecords", + "definition": { + "module": "job", + "namespace": "ns" + } + }}}, + { "step": { "join": { + "name": "joined", + "localSource": "users", + "localColumn": "join_key", + "foreignSource": "jobs", + "foreignColumn": "usr" + }}} + ], "frames": [{ "name": "result", "source": "joined", diff --git a/tests/reporter/testdata/S3002_joining_filtering/report.json b/tests/reporter/testdata/S3002_joining_filtering/report.json index c6dd5a1c2..d1651f566 100644 --- a/tests/reporter/testdata/S3002_joining_filtering/report.json +++ b/tests/reporter/testdata/S3002_joining_filtering/report.json @@ -1,39 +1,30 @@ { "handle": "testing_report", - "sources": [{ - "name": "unnamed_src", - "groups": [ - { - "name": "unnamed_grp", - "steps": [ - { "load": { - "name": "users", - "source": "composeRecords", - "definition": { - "module": "user", - "namespace": "ns" - } - }}, - { "load": { - "name": "jobs", - "source": "composeRecords", - "definition": { - "module": "job", - "namespace": "ns" - } - }}, - - { "join": { - "name": "joined", - "localSource": "users", - "localColumn": "join_key", - "foreignSource": "jobs", - "foreignColumn": "usr" - }} - ] + "sources": [ + { "step": { "load": { + "name": "users", + "source": "composeRecords", + "definition": { + "module": "user", + "namespace": "ns" } - ] - }], + }}}, + { "step": { "load": { + "name": "jobs", + "source": "composeRecords", + "definition": { + "module": "job", + "namespace": "ns" + } + }}}, + { "step": { "join": { + "name": "joined", + "localSource": "users", + "localColumn": "join_key", + "foreignSource": "jobs", + "foreignColumn": "usr" + }}} + ], "frames": [{ "name": "result", "source": "joined", diff --git a/tests/reporter/testdata/S3003_joining_sorting_local/report.json b/tests/reporter/testdata/S3003_joining_sorting_local/report.json index f65974699..cf08a1eba 100644 --- a/tests/reporter/testdata/S3003_joining_sorting_local/report.json +++ b/tests/reporter/testdata/S3003_joining_sorting_local/report.json @@ -1,39 +1,30 @@ { "handle": "testing_report", - "sources": [{ - "name": "unnamed_src", - "groups": [ - { - "name": "unnamed_grp", - "steps": [ - { "load": { - "name": "users", - "source": "composeRecords", - "definition": { - "module": "user", - "namespace": "ns" - } - }}, - { "load": { - "name": "jobs", - "source": "composeRecords", - "definition": { - "module": "job", - "namespace": "ns" - } - }}, - - { "join": { - "name": "joined", - "localSource": "users", - "localColumn": "join_key", - "foreignSource": "jobs", - "foreignColumn": "usr" - }} - ] + "sources": [ + { "step": { "load": { + "name": "users", + "source": "composeRecords", + "definition": { + "module": "user", + "namespace": "ns" } - ] - }], + }}}, + { "step": { "load": { + "name": "jobs", + "source": "composeRecords", + "definition": { + "module": "job", + "namespace": "ns" + } + }}}, + { "step": { "join": { + "name": "joined", + "localSource": "users", + "localColumn": "join_key", + "foreignSource": "jobs", + "foreignColumn": "usr" + }}} + ], "frames": [{ "name": "result", "source": "joined", diff --git a/tests/reporter/testdata/S3004_joining_sorting_foreign/report.json b/tests/reporter/testdata/S3004_joining_sorting_foreign/report.json index 9f3a7bcbf..b3fd1040d 100644 --- a/tests/reporter/testdata/S3004_joining_sorting_foreign/report.json +++ b/tests/reporter/testdata/S3004_joining_sorting_foreign/report.json @@ -1,39 +1,30 @@ { "handle": "testing_report", - "sources": [{ - "name": "unnamed_src", - "groups": [ - { - "name": "unnamed_grp", - "steps": [ - { "load": { - "name": "users", - "source": "composeRecords", - "definition": { - "module": "user", - "namespace": "ns" - } - }}, - { "load": { - "name": "jobs", - "source": "composeRecords", - "definition": { - "module": "job", - "namespace": "ns" - } - }}, - - { "join": { - "name": "joined", - "localSource": "users", - "localColumn": "join_key", - "foreignSource": "jobs", - "foreignColumn": "usr" - }} - ] + "sources": [ + { "step": { "load": { + "name": "users", + "source": "composeRecords", + "definition": { + "module": "user", + "namespace": "ns" } - ] - }], + }}}, + { "step": { "load": { + "name": "jobs", + "source": "composeRecords", + "definition": { + "module": "job", + "namespace": "ns" + } + }}}, + { "step": { "join": { + "name": "joined", + "localSource": "users", + "localColumn": "join_key", + "foreignSource": "jobs", + "foreignColumn": "usr" + }}} + ], "frames": [{ "name": "result", "source": "joined", diff --git a/tests/reporter/testdata/S3005_joining_paging/report.json b/tests/reporter/testdata/S3005_joining_paging/report.json index e6aa52ebd..8d0574356 100644 --- a/tests/reporter/testdata/S3005_joining_paging/report.json +++ b/tests/reporter/testdata/S3005_joining_paging/report.json @@ -1,39 +1,30 @@ { "handle": "testing_report", - "sources": [{ - "name": "unnamed_src", - "groups": [ - { - "name": "unnamed_grp", - "steps": [ - { "load": { - "name": "users", - "source": "composeRecords", - "definition": { - "module": "user", - "namespace": "ns" - } - }}, - { "load": { - "name": "jobs", - "source": "composeRecords", - "definition": { - "module": "job", - "namespace": "ns" - } - }}, - - { "join": { - "name": "joined", - "localSource": "users", - "localColumn": "join_key", - "foreignSource": "jobs", - "foreignColumn": "usr" - }} - ] + "sources": [ + { "step": { "load": { + "name": "users", + "source": "composeRecords", + "definition": { + "module": "user", + "namespace": "ns" } - ] - }], + }}}, + { "step": { "load": { + "name": "jobs", + "source": "composeRecords", + "definition": { + "module": "job", + "namespace": "ns" + } + }}}, + { "step": { "join": { + "name": "joined", + "localSource": "users", + "localColumn": "join_key", + "foreignSource": "jobs", + "foreignColumn": "usr" + }}} + ], "frames": [{ "name": "result", "source": "joined", diff --git a/tests/reporter/testdata/S7001_modeling_multi/report.json b/tests/reporter/testdata/S7001_modeling_multi/report.json index 4dfa397c9..9e3024481 100644 --- a/tests/reporter/testdata/S7001_modeling_multi/report.json +++ b/tests/reporter/testdata/S7001_modeling_multi/report.json @@ -1,35 +1,27 @@ { "handle": "testing_report", - "sources": [{ - "name": "unnamed_src", - "groups": [ - { - "name": "unnamed_grp", - "steps": [ - { "load": { - "name": "users", - "source": "composeRecords", - "definition": { - "module": "user", - "namespace": "ns" - } - }}, - - { "group": { - "name": "grouped", - "source": "users", - "keys": [ - { "name": "by_name", "column": "first_name" } - ], - "columns": [ - { "name": "count", "aggregate": "count" }, - { "name": "total", "aggregate": "sum", "column": "number_of_numbers" } - ] - }} - ] + "sources": [ + { "step": { "load": { + "name": "users", + "source": "composeRecords", + "definition": { + "module": "user", + "namespace": "ns" } - ] - }], + }}}, + + { "step": { "group": { + "name": "grouped", + "source": "users", + "keys": [ + { "name": "by_name", "column": "first_name" } + ], + "columns": [ + { "name": "count", "aggregate": "count" }, + { "name": "total", "aggregate": "sum", "column": "number_of_numbers" } + ] + }}} + ], "frames": [{ "name": "base", "source": "users",