fluentd-openlineage-parser 0.1.0

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.
Files changed (118) hide show
  1. checksums.yaml +7 -0
  2. data/.idea/.gitignore +8 -0
  3. data/.idea/fluentd.iml +204 -0
  4. data/.idea/misc.xml +4 -0
  5. data/.idea/modules/benchmark-memory-0.2.iml +12 -0
  6. data/.idea/modules/bigdecimal-3.1.iml +11 -0
  7. data/.idea/modules/certstore_c-0.1.iml +15 -0
  8. data/.idea/modules/concurrent-ruby-1.3.iml +18 -0
  9. data/.idea/modules/concurrent-ruby-1.31.iml +15 -0
  10. data/.idea/modules/connection_pool-2.4.iml +11 -0
  11. data/.idea/modules/cool.io-1.8.iml +16 -0
  12. data/.idea/modules/drb-2.2.iml +14 -0
  13. data/.idea/modules/drb-2.21.iml +11 -0
  14. data/.idea/modules/ffi-1.17.iml +20 -0
  15. data/.idea/modules/ffi-win32-extensions-1.0.iml +19 -0
  16. data/.idea/modules/fluentd-1.17.iml +43 -0
  17. data/.idea/modules/http_parser.rb-0.8.iml +17 -0
  18. data/.idea/modules/json-2.7.iml +14 -0
  19. data/.idea/modules/json-2.71.iml +11 -0
  20. data/.idea/modules/msgpack-1.7.iml +15 -0
  21. data/.idea/modules/mutex_m-0.2.iml +15 -0
  22. data/.idea/modules/new_gem.iml +15 -0
  23. data/.idea/modules/power_assert-2.0.iml +19 -0
  24. data/.idea/modules/rake-13.2.iml +18 -0
  25. data/.idea/modules/rake-13.21.iml +15 -0
  26. data/.idea/modules/rake-compiler-1.2.iml +13 -0
  27. data/.idea/modules/rusty_json_schema-0.15.iml +15 -0
  28. data/.idea/modules/serverengine-2.3.iml +17 -0
  29. data/.idea/modules/sigdump-0.2.iml +16 -0
  30. data/.idea/modules/specifications.iml +14 -0
  31. data/.idea/modules/specifications1.iml +11 -0
  32. data/.idea/modules/strptime-0.2.iml +16 -0
  33. data/.idea/modules/thermite-0.13.iml +17 -0
  34. data/.idea/modules/webrick-1.8.iml +18 -0
  35. data/.idea/modules/win32-event-0.6.iml +21 -0
  36. data/.idea/modules/win32-ipc-0.7.iml +20 -0
  37. data/.idea/modules/yajl-ruby-1.4.iml +779 -0
  38. data/.idea/modules.xml +41 -0
  39. data/Gemfile +3 -0
  40. data/README.md +223 -0
  41. data/Rakefile +13 -0
  42. data/config/conf/fluent.conf +101 -0
  43. data/config/test-complete.json +73 -0
  44. data/config/test-start.json +73 -0
  45. data/events/event_full.json +206 -0
  46. data/events/event_invalid_dataset_facet.json +31 -0
  47. data/events/event_invalid_input_dataset_facet.json +29 -0
  48. data/events/event_invalid_job_facet.json +26 -0
  49. data/events/event_invalid_output_dataset_facet.json +29 -0
  50. data/events/event_invalid_run_facet.json +28 -0
  51. data/events/event_no_run_id.json +28 -0
  52. data/events/event_simple.json +29 -0
  53. data/fluentd-openlineage-parser.gemspec +28 -0
  54. data/lib/fluent/plugin/fluentd-openlineage-parser.rb +182 -0
  55. data/spec/Naming.md +500 -0
  56. data/spec/OpenLineage.json +304 -0
  57. data/spec/OpenLineage.md +179 -0
  58. data/spec/OpenLineage.yml +27 -0
  59. data/spec/OpenLineageModel.svg +1 -0
  60. data/spec/Versioning.md +49 -0
  61. data/spec/facets/ColumnLineageDatasetFacet.json +96 -0
  62. data/spec/facets/ColumnLineageDatasetFacet.md +106 -0
  63. data/spec/facets/DataQualityAssertionsDatasetFacet.json +49 -0
  64. data/spec/facets/DataQualityMetricsInputDatasetFacet.json +76 -0
  65. data/spec/facets/DatasetVersionDatasetFacet.json +31 -0
  66. data/spec/facets/DatasourceDatasetFacet.json +32 -0
  67. data/spec/facets/DocumentationDatasetFacet.json +31 -0
  68. data/spec/facets/DocumentationJobFacet.json +30 -0
  69. data/spec/facets/ErrorMessageRunFacet.json +41 -0
  70. data/spec/facets/ExternalQueryRunFacet.json +36 -0
  71. data/spec/facets/ExternalQueryRunFacet.md +49 -0
  72. data/spec/facets/ExtractionErrorRunFacet.json +58 -0
  73. data/spec/facets/JobTypeJobFacet.json +41 -0
  74. data/spec/facets/LifecycleStateChangeDatasetFacet.json +46 -0
  75. data/spec/facets/NominalTimeRunFacet.json +38 -0
  76. data/spec/facets/OutputStatisticsOutputDatasetFacet.json +36 -0
  77. data/spec/facets/OwnershipDatasetFacet.json +45 -0
  78. data/spec/facets/OwnershipJobFacet.json +45 -0
  79. data/spec/facets/ParentRunFacet.json +54 -0
  80. data/spec/facets/ProcessingEngineRunFacet.json +41 -0
  81. data/spec/facets/SQLJobFacet.json +30 -0
  82. data/spec/facets/SchemaDatasetFacet.json +59 -0
  83. data/spec/facets/SourceCodeJobFacet.json +34 -0
  84. data/spec/facets/SourceCodeLocationJobFacet.json +60 -0
  85. data/spec/facets/StorageDatasetFacet.json +35 -0
  86. data/spec/facets/SymlinksDatasetFacet.json +47 -0
  87. data/spec/registry/core/registry.json +31 -0
  88. data/spec/registry/gcp/facets/GcpCommonJobFacet.json +43 -0
  89. data/spec/registry/gcp/registry.json +6 -0
  90. data/spec/release.sh +80 -0
  91. data/spec/tests/ColumnLineageDatasetFacet/1.json +172 -0
  92. data/spec/tests/DataQualityAssertionsDatasetFacet/1.json +58 -0
  93. data/spec/tests/DataQualityMetricsInputDatasetFacet/1.json +23 -0
  94. data/spec/tests/DatasetVersionDatasetFacet/1.json +7 -0
  95. data/spec/tests/DatasourceDatasetFacet/1.json +7 -0
  96. data/spec/tests/DocumentationDatasetFacet/1.json +7 -0
  97. data/spec/tests/DocumentationJobFacet/1.json +7 -0
  98. data/spec/tests/ErrorMessageRunFacet/1.json +9 -0
  99. data/spec/tests/ExternalQueryRunFacet/1.json +8 -0
  100. data/spec/tests/ExtractionErrorRunFacet/1.json +15 -0
  101. data/spec/tests/JobTypeJobFacet/1.json +9 -0
  102. data/spec/tests/LifecycleStateChangeDatasetFacet/1.json +11 -0
  103. data/spec/tests/NominalTimeRunFacet/1.json +8 -0
  104. data/spec/tests/OutputStatisticsOutputDatasetFacet/1.json +9 -0
  105. data/spec/tests/OwnershipDatasetFacet/1.json +11 -0
  106. data/spec/tests/OwnershipJobFacet/1.json +11 -0
  107. data/spec/tests/ParentRunFacet/1.json +13 -0
  108. data/spec/tests/ProcessingEngineRunFacet/1.json +9 -0
  109. data/spec/tests/SQLJobFacet/1.json +7 -0
  110. data/spec/tests/SchemaDatasetFacet/1.json +92 -0
  111. data/spec/tests/SourceCodeJobFacet/1.json +8 -0
  112. data/spec/tests/SourceCodeLocationJobFacet/1.json +8 -0
  113. data/spec/tests/StorageDatasetFacet/1.json +8 -0
  114. data/spec/tests/SymlinksDatasetFacet/1.json +13 -0
  115. data/spec/tests/example_full_event.json +24 -0
  116. data/test/helper.rb +8 -0
  117. data/test/plugin/test_parser_openlineage.rb +141 -0
  118. metadata +298 -0
@@ -0,0 +1,8 @@
1
+ {
2
+ "sourceCodeLocation": {
3
+ "_producer": "https://github.com/OpenLineage/OpenLineage/blob/v1-0-0/client",
4
+ "_schemaURL": "https://openlineage.io/spec/facets/1-0-0/SourceCodeLocationJobFacet.json",
5
+ "type": "git",
6
+ "url": "http://example.com"
7
+ }
8
+ }
@@ -0,0 +1,8 @@
1
+ {
2
+ "storage": {
3
+ "storageLayer": "delta",
4
+ "fileFormat": "parquet",
5
+ "_producer": "https://github.com/OpenLineage/OpenLineage/blob/v1-0-0/client",
6
+ "_schemaURL": "https://openlineage.io/spec/facets/1-0-0/StorageDatasetFacet.json"
7
+ }
8
+ }
@@ -0,0 +1,13 @@
1
+ {
2
+ "symlinks": {
3
+ "identifiers": [
4
+ {
5
+ "namespace": "/tmp/alter_test",
6
+ "name": "default.alter_table_test_new",
7
+ "type": "TABLE"
8
+ }
9
+ ],
10
+ "_producer": "https://github.com/OpenLineage/OpenLineage/blob/v1-0-0/client",
11
+ "_schemaURL": "https://openlineage.io/spec/facets/1-0-0/SymlinksDatasetFacet.json"
12
+ }
13
+ }
@@ -0,0 +1,24 @@
1
+ {
2
+ "eventTime": "2023-07-17T10:54:22.355067Z",
3
+ "eventType": "COMPLETE",
4
+ "inputs": [],
5
+ "job": {
6
+ "facets": {
7
+ "sql": {
8
+ "query": "SELECT 1",
9
+ "_producer": "http://123",
10
+ "_schemaURL": "http://123"
11
+ }
12
+ },
13
+ "name": "dbt",
14
+ "namespace": "food_delivery"
15
+ },
16
+ "outputs": [],
17
+ "producer": "https://github.com/OpenLineage/OpenLineage/tree/0.30.0/integration/airflow",
18
+ "run": {
19
+ "facets": {},
20
+ "runId": "f69a6e9b-9bac-3c9a-9cf6-eacb70ecc9a9"
21
+ },
22
+ "dataset": { "namespace": "123", "name": "1" },
23
+ "schemaURL": "https://openlineage.io/spec/1-0-5/OpenLineage.json#/definitions/RunEvent"
24
+ }
data/test/helper.rb ADDED
@@ -0,0 +1,8 @@
1
+ $LOAD_PATH.unshift(File.expand_path("../../", __FILE__))
2
+ require "test-unit"
3
+ require "fluent/test"
4
+ require "fluent/test/driver/parser"
5
+ require "fluent/test/helpers"
6
+
7
+ Test::Unit::TestCase.include(Fluent::Test::Helpers)
8
+ Test::Unit::TestCase.extend(Fluent::Test::Helpers)
@@ -0,0 +1,141 @@
1
+ require "helper"
2
+ require "fluent/plugin/parser_openlineage.rb"
3
+
4
+ class OpenlineageParserTest < Test::Unit::TestCase
5
+ setup do
6
+ Fluent::Test.setup
7
+ @parser = Fluent::Test::Driver::Parser.new(Fluent::Plugin::OpenlineageParser)
8
+ @parser.configure(
9
+ 'spec_directory' => '../../spec/'
10
+ )
11
+ end
12
+
13
+ test "test event with no runId" do
14
+ ol_event = File.read("events/event_no_run_id.json")
15
+
16
+ err = assert_raise Fluent::ParserError do
17
+ @parser.instance.parse(ol_event)
18
+ end
19
+ assert_match(/Openlineage validation failed: (.+) path "\/run": "runId" is a required property/, err.message)
20
+ end
21
+
22
+ test "test invalid json" do
23
+ assert_raise Fluent::ParserError do
24
+ @parser.instance.parse('{"run": Not a JSON}')
25
+ end
26
+ end
27
+
28
+ test "event full test" do
29
+ ol_event = File.read("events/event_full.json")
30
+ @parser.instance.parse(ol_event) { | time, json |
31
+ assert_equal("ea041791-68bc-4ae1-bd89-4c8106a157e4", json['run']['runId'])
32
+ assert_equal(2000, json['outputs'][0]['outputFacets']['outputStatistics']['rowCount'])
33
+ }
34
+ end
35
+
36
+ test "event simple test" do
37
+ ol_event = File.read("events/event_simple.json")
38
+ @parser.instance.parse(ol_event) { | time, json |
39
+ assert_equal("41fb5137-f0fd-4ee5-ba5c-56f8571d1bd7", json['run']['runId'])
40
+ }
41
+ end
42
+
43
+ test "invalid spec_directory test" do
44
+ assert_raise Fluent::ParserError do
45
+ @parser.configure(
46
+ 'spec_directory' => './non-existent-spec/'
47
+ )
48
+ end
49
+ end
50
+
51
+ test "valid spec_directory without slash" do
52
+ @parser.configure(
53
+ 'spec_directory' => '../../spec'
54
+ )
55
+ ol_event = File.read("events/event_simple.json")
56
+ @parser.instance.parse(ol_event) { | time, json |
57
+ assert_equal("41fb5137-f0fd-4ee5-ba5c-56f8571d1bd7", json['run']['runId'])
58
+ }
59
+ end
60
+
61
+ test "run facet validation" do
62
+ ol_event = File.read("events/event_invalid_run_facet.json")
63
+ err = assert_raise Fluent::ParserError do
64
+ @parser.instance.parse(ol_event)
65
+ end
66
+ assert_match(/Openlineage validation failed: (.+) path "\/run\/facets/, err.message)
67
+ end
68
+
69
+ test "run facet validation turned off" do
70
+ ol_event = File.read("events/event_invalid_run_facet.json")
71
+ @parser.configure(
72
+ 'spec_directory' => '../../spec/',
73
+ 'validate_run_facets' => false,
74
+ )
75
+ @parser.instance.parse(ol_event) { | time, json |
76
+ assert_equal("41fb5137-f0fd-4ee5-ba5c-56f8571d1bd7", json['run']['runId'])
77
+ }
78
+ end
79
+
80
+ test "job facet validation" do
81
+ ol_event = File.read("events/event_invalid_job_facet.json")
82
+ err = assert_raise Fluent::ParserError do
83
+ @parser.instance.parse(ol_event)
84
+ end
85
+ assert_match(/Openlineage validation failed: (.+) path "\/job\/facets\/ownership/, err.message)
86
+ end
87
+
88
+ test "job facet validation turned off" do
89
+ ol_event = File.read("events/event_invalid_job_facet.json")
90
+ @parser.configure(
91
+ 'spec_directory' => '../../spec/',
92
+ 'validate_job_facets' => false,
93
+ )
94
+ @parser.instance.parse(ol_event) { | time, json |
95
+ assert_equal("41fb5137-f0fd-4ee5-ba5c-56f8571d1bd7", json['run']['runId'])
96
+ }
97
+ end
98
+
99
+ test "dataset facet validation" do
100
+ ol_event = File.read("events/event_invalid_dataset_facet.json")
101
+ @parser.configure(
102
+ 'spec_directory' => '../../spec/',
103
+ 'validate_dataset_facets' => true,
104
+ )
105
+ err = assert_raise Fluent::ParserError do
106
+ @parser.instance.parse(ol_event)
107
+ end
108
+ assert_match(/Openlineage validation failed: (.+) path "\/outputs\/0\/facets\/ownership\/owners/, err.message)
109
+ end
110
+
111
+ test "input dataset facet validation" do
112
+ ol_event = File.read("events/event_invalid_input_dataset_facet.json")
113
+ @parser.configure(
114
+ 'json_parser' => 'yajl',
115
+ 'spec_directory' => '../../spec/',
116
+ 'validate_input_dataset_facets' => true,
117
+ )
118
+ err = assert_raise Fluent::ParserError do
119
+ @parser.instance.parse(ol_event)
120
+ end
121
+ assert_match(/Openlineage validation failed: (.+) "columnMetrics" is a required property/, err.message)
122
+ end
123
+
124
+ test "output dataset facet validation" do
125
+ ol_event = File.read("events/event_invalid_output_dataset_facet.json")
126
+ @parser.configure(
127
+ 'spec_directory' => '../../spec/',
128
+ 'validate_output_dataset_facets' => true,
129
+ )
130
+ err = assert_raise Fluent::ParserError do
131
+ @parser.instance.parse(ol_event)
132
+ end
133
+ assert_match(/Openlineage validation failed: (.+) path \"\/outputs\/0\/outputFacets\/outputStatistics\/rowCount/, err.message)
134
+ end
135
+
136
+ private
137
+
138
+ def create_driver(conf)
139
+ Fluent::Test::Driver::Parser.new(Fluent::Plugin::OpenlineageParser).configure(conf)
140
+ end
141
+ end
metadata ADDED
@@ -0,0 +1,298 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: fluentd-openlineage-parser
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.0
5
+ platform: ruby
6
+ authors:
7
+ - Pawel Leszczynski
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2024-08-02 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: bundler
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ">="
18
+ - !ruby/object:Gem::Version
19
+ version: '0'
20
+ type: :development
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ">="
25
+ - !ruby/object:Gem::Version
26
+ version: '0'
27
+ - !ruby/object:Gem::Dependency
28
+ name: rake
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ">="
32
+ - !ruby/object:Gem::Version
33
+ version: '0'
34
+ type: :development
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ">="
39
+ - !ruby/object:Gem::Version
40
+ version: '0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: test-unit
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - ">="
46
+ - !ruby/object:Gem::Version
47
+ version: '0'
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - ">="
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
55
+ - !ruby/object:Gem::Dependency
56
+ name: fluentd
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - ">="
60
+ - !ruby/object:Gem::Version
61
+ version: 0.14.10
62
+ - - "<"
63
+ - !ruby/object:Gem::Version
64
+ version: '2'
65
+ type: :runtime
66
+ prerelease: false
67
+ version_requirements: !ruby/object:Gem::Requirement
68
+ requirements:
69
+ - - ">="
70
+ - !ruby/object:Gem::Version
71
+ version: 0.14.10
72
+ - - "<"
73
+ - !ruby/object:Gem::Version
74
+ version: '2'
75
+ - !ruby/object:Gem::Dependency
76
+ name: rusty_json_schema
77
+ requirement: !ruby/object:Gem::Requirement
78
+ requirements:
79
+ - - ">="
80
+ - !ruby/object:Gem::Version
81
+ version: '0'
82
+ type: :runtime
83
+ prerelease: false
84
+ version_requirements: !ruby/object:Gem::Requirement
85
+ requirements:
86
+ - - ">="
87
+ - !ruby/object:Gem::Version
88
+ version: '0'
89
+ description: Fluentd parser that validates if JSON is a valid Openlineage event.
90
+ email:
91
+ - leszczynski.pawel@gmail.com
92
+ executables: []
93
+ extensions: []
94
+ extra_rdoc_files: []
95
+ files:
96
+ - ".idea/.gitignore"
97
+ - ".idea/fluentd.iml"
98
+ - ".idea/misc.xml"
99
+ - ".idea/modules.xml"
100
+ - ".idea/modules/benchmark-memory-0.2.iml"
101
+ - ".idea/modules/bigdecimal-3.1.iml"
102
+ - ".idea/modules/certstore_c-0.1.iml"
103
+ - ".idea/modules/concurrent-ruby-1.3.iml"
104
+ - ".idea/modules/concurrent-ruby-1.31.iml"
105
+ - ".idea/modules/connection_pool-2.4.iml"
106
+ - ".idea/modules/cool.io-1.8.iml"
107
+ - ".idea/modules/drb-2.2.iml"
108
+ - ".idea/modules/drb-2.21.iml"
109
+ - ".idea/modules/ffi-1.17.iml"
110
+ - ".idea/modules/ffi-win32-extensions-1.0.iml"
111
+ - ".idea/modules/fluentd-1.17.iml"
112
+ - ".idea/modules/http_parser.rb-0.8.iml"
113
+ - ".idea/modules/json-2.7.iml"
114
+ - ".idea/modules/json-2.71.iml"
115
+ - ".idea/modules/msgpack-1.7.iml"
116
+ - ".idea/modules/mutex_m-0.2.iml"
117
+ - ".idea/modules/new_gem.iml"
118
+ - ".idea/modules/power_assert-2.0.iml"
119
+ - ".idea/modules/rake-13.2.iml"
120
+ - ".idea/modules/rake-13.21.iml"
121
+ - ".idea/modules/rake-compiler-1.2.iml"
122
+ - ".idea/modules/rusty_json_schema-0.15.iml"
123
+ - ".idea/modules/serverengine-2.3.iml"
124
+ - ".idea/modules/sigdump-0.2.iml"
125
+ - ".idea/modules/specifications.iml"
126
+ - ".idea/modules/specifications1.iml"
127
+ - ".idea/modules/strptime-0.2.iml"
128
+ - ".idea/modules/thermite-0.13.iml"
129
+ - ".idea/modules/webrick-1.8.iml"
130
+ - ".idea/modules/win32-event-0.6.iml"
131
+ - ".idea/modules/win32-ipc-0.7.iml"
132
+ - ".idea/modules/yajl-ruby-1.4.iml"
133
+ - Gemfile
134
+ - README.md
135
+ - Rakefile
136
+ - config/conf/fluent.conf
137
+ - config/test-complete.json
138
+ - config/test-start.json
139
+ - events/event_full.json
140
+ - events/event_invalid_dataset_facet.json
141
+ - events/event_invalid_input_dataset_facet.json
142
+ - events/event_invalid_job_facet.json
143
+ - events/event_invalid_output_dataset_facet.json
144
+ - events/event_invalid_run_facet.json
145
+ - events/event_no_run_id.json
146
+ - events/event_simple.json
147
+ - fluentd-openlineage-parser.gemspec
148
+ - lib/fluent/plugin/fluentd-openlineage-parser.rb
149
+ - spec/Naming.md
150
+ - spec/OpenLineage.json
151
+ - spec/OpenLineage.md
152
+ - spec/OpenLineage.yml
153
+ - spec/OpenLineageModel.svg
154
+ - spec/Versioning.md
155
+ - spec/facets/ColumnLineageDatasetFacet.json
156
+ - spec/facets/ColumnLineageDatasetFacet.md
157
+ - spec/facets/DataQualityAssertionsDatasetFacet.json
158
+ - spec/facets/DataQualityMetricsInputDatasetFacet.json
159
+ - spec/facets/DatasetVersionDatasetFacet.json
160
+ - spec/facets/DatasourceDatasetFacet.json
161
+ - spec/facets/DocumentationDatasetFacet.json
162
+ - spec/facets/DocumentationJobFacet.json
163
+ - spec/facets/ErrorMessageRunFacet.json
164
+ - spec/facets/ExternalQueryRunFacet.json
165
+ - spec/facets/ExternalQueryRunFacet.md
166
+ - spec/facets/ExtractionErrorRunFacet.json
167
+ - spec/facets/JobTypeJobFacet.json
168
+ - spec/facets/LifecycleStateChangeDatasetFacet.json
169
+ - spec/facets/NominalTimeRunFacet.json
170
+ - spec/facets/OutputStatisticsOutputDatasetFacet.json
171
+ - spec/facets/OwnershipDatasetFacet.json
172
+ - spec/facets/OwnershipJobFacet.json
173
+ - spec/facets/ParentRunFacet.json
174
+ - spec/facets/ProcessingEngineRunFacet.json
175
+ - spec/facets/SQLJobFacet.json
176
+ - spec/facets/SchemaDatasetFacet.json
177
+ - spec/facets/SourceCodeJobFacet.json
178
+ - spec/facets/SourceCodeLocationJobFacet.json
179
+ - spec/facets/StorageDatasetFacet.json
180
+ - spec/facets/SymlinksDatasetFacet.json
181
+ - spec/registry/core/registry.json
182
+ - spec/registry/gcp/facets/GcpCommonJobFacet.json
183
+ - spec/registry/gcp/registry.json
184
+ - spec/release.sh
185
+ - spec/tests/ColumnLineageDatasetFacet/1.json
186
+ - spec/tests/DataQualityAssertionsDatasetFacet/1.json
187
+ - spec/tests/DataQualityMetricsInputDatasetFacet/1.json
188
+ - spec/tests/DatasetVersionDatasetFacet/1.json
189
+ - spec/tests/DatasourceDatasetFacet/1.json
190
+ - spec/tests/DocumentationDatasetFacet/1.json
191
+ - spec/tests/DocumentationJobFacet/1.json
192
+ - spec/tests/ErrorMessageRunFacet/1.json
193
+ - spec/tests/ExternalQueryRunFacet/1.json
194
+ - spec/tests/ExtractionErrorRunFacet/1.json
195
+ - spec/tests/JobTypeJobFacet/1.json
196
+ - spec/tests/LifecycleStateChangeDatasetFacet/1.json
197
+ - spec/tests/NominalTimeRunFacet/1.json
198
+ - spec/tests/OutputStatisticsOutputDatasetFacet/1.json
199
+ - spec/tests/OwnershipDatasetFacet/1.json
200
+ - spec/tests/OwnershipJobFacet/1.json
201
+ - spec/tests/ParentRunFacet/1.json
202
+ - spec/tests/ProcessingEngineRunFacet/1.json
203
+ - spec/tests/SQLJobFacet/1.json
204
+ - spec/tests/SchemaDatasetFacet/1.json
205
+ - spec/tests/SourceCodeJobFacet/1.json
206
+ - spec/tests/SourceCodeLocationJobFacet/1.json
207
+ - spec/tests/StorageDatasetFacet/1.json
208
+ - spec/tests/SymlinksDatasetFacet/1.json
209
+ - spec/tests/example_full_event.json
210
+ - test/helper.rb
211
+ - test/plugin/test_parser_openlineage.rb
212
+ homepage: http://openlineage.io
213
+ licenses:
214
+ - Apache-2.0
215
+ metadata: {}
216
+ post_install_message:
217
+ rdoc_options: []
218
+ require_paths:
219
+ - lib
220
+ required_ruby_version: !ruby/object:Gem::Requirement
221
+ requirements:
222
+ - - ">="
223
+ - !ruby/object:Gem::Version
224
+ version: '0'
225
+ required_rubygems_version: !ruby/object:Gem::Requirement
226
+ requirements:
227
+ - - ">="
228
+ - !ruby/object:Gem::Version
229
+ version: '0'
230
+ requirements: []
231
+ rubygems_version: 3.5.16
232
+ signing_key:
233
+ specification_version: 4
234
+ summary: Parser to validate Openlineage events.
235
+ test_files:
236
+ - spec/Naming.md
237
+ - spec/OpenLineage.json
238
+ - spec/OpenLineage.md
239
+ - spec/OpenLineage.yml
240
+ - spec/OpenLineageModel.svg
241
+ - spec/Versioning.md
242
+ - spec/facets/ColumnLineageDatasetFacet.json
243
+ - spec/facets/ColumnLineageDatasetFacet.md
244
+ - spec/facets/DataQualityAssertionsDatasetFacet.json
245
+ - spec/facets/DataQualityMetricsInputDatasetFacet.json
246
+ - spec/facets/DatasetVersionDatasetFacet.json
247
+ - spec/facets/DatasourceDatasetFacet.json
248
+ - spec/facets/DocumentationDatasetFacet.json
249
+ - spec/facets/DocumentationJobFacet.json
250
+ - spec/facets/ErrorMessageRunFacet.json
251
+ - spec/facets/ExternalQueryRunFacet.json
252
+ - spec/facets/ExternalQueryRunFacet.md
253
+ - spec/facets/ExtractionErrorRunFacet.json
254
+ - spec/facets/JobTypeJobFacet.json
255
+ - spec/facets/LifecycleStateChangeDatasetFacet.json
256
+ - spec/facets/NominalTimeRunFacet.json
257
+ - spec/facets/OutputStatisticsOutputDatasetFacet.json
258
+ - spec/facets/OwnershipDatasetFacet.json
259
+ - spec/facets/OwnershipJobFacet.json
260
+ - spec/facets/ParentRunFacet.json
261
+ - spec/facets/ProcessingEngineRunFacet.json
262
+ - spec/facets/SQLJobFacet.json
263
+ - spec/facets/SchemaDatasetFacet.json
264
+ - spec/facets/SourceCodeJobFacet.json
265
+ - spec/facets/SourceCodeLocationJobFacet.json
266
+ - spec/facets/StorageDatasetFacet.json
267
+ - spec/facets/SymlinksDatasetFacet.json
268
+ - spec/registry/core/registry.json
269
+ - spec/registry/gcp/facets/GcpCommonJobFacet.json
270
+ - spec/registry/gcp/registry.json
271
+ - spec/release.sh
272
+ - spec/tests/ColumnLineageDatasetFacet/1.json
273
+ - spec/tests/DataQualityAssertionsDatasetFacet/1.json
274
+ - spec/tests/DataQualityMetricsInputDatasetFacet/1.json
275
+ - spec/tests/DatasetVersionDatasetFacet/1.json
276
+ - spec/tests/DatasourceDatasetFacet/1.json
277
+ - spec/tests/DocumentationDatasetFacet/1.json
278
+ - spec/tests/DocumentationJobFacet/1.json
279
+ - spec/tests/ErrorMessageRunFacet/1.json
280
+ - spec/tests/ExternalQueryRunFacet/1.json
281
+ - spec/tests/ExtractionErrorRunFacet/1.json
282
+ - spec/tests/JobTypeJobFacet/1.json
283
+ - spec/tests/LifecycleStateChangeDatasetFacet/1.json
284
+ - spec/tests/NominalTimeRunFacet/1.json
285
+ - spec/tests/OutputStatisticsOutputDatasetFacet/1.json
286
+ - spec/tests/OwnershipDatasetFacet/1.json
287
+ - spec/tests/OwnershipJobFacet/1.json
288
+ - spec/tests/ParentRunFacet/1.json
289
+ - spec/tests/ProcessingEngineRunFacet/1.json
290
+ - spec/tests/SQLJobFacet/1.json
291
+ - spec/tests/SchemaDatasetFacet/1.json
292
+ - spec/tests/SourceCodeJobFacet/1.json
293
+ - spec/tests/SourceCodeLocationJobFacet/1.json
294
+ - spec/tests/StorageDatasetFacet/1.json
295
+ - spec/tests/SymlinksDatasetFacet/1.json
296
+ - spec/tests/example_full_event.json
297
+ - test/helper.rb
298
+ - test/plugin/test_parser_openlineage.rb