Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Documentation Update #27

Open
wants to merge 380 commits into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
380 commits
Select commit Hold shift + click to select a range
808ce80
#OBS-I186 : added dataset mertric api controller and route and minor …
yashashkumar Sep 3, 2024
be67b38
Merge remote-tracking branch 'origin/v2-apis' into v1-apis-dev-fix
yashashkumar Sep 3, 2024
9a08837
install pip requirments if applicable
SurabhiAngadi Sep 3, 2024
588245b
#OBS-I186 : removed export statement
yashashkumar Sep 3, 2024
4f5e155
#OBS-I164: added config for option rbac verification
Rakshitha-D Sep 3, 2024
9d16185
#OBS-I164: changed the middleware to rbac_middleware
Rakshitha-D Sep 3, 2024
5d85633
#OBS-I186 : Logic moved to separate function
yashashkumar Sep 3, 2024
ac09f85
#OBS-I164: changed import name
Rakshitha-D Sep 3, 2024
40049e9
#OBS-I186 : Logic moved to separate function
yashashkumar Sep 3, 2024
7fbcf74
#OBS-I185 : fix: test case fixes
JeraldJF Sep 3, 2024
6d963cf
Merge pull request #235 from Sanketika-Obsrv/v1-apis-dev-fix
HarishGangula Sep 3, 2024
b7d046f
Merge remote-tracking branch 'origin/v2-apis' into v2-test-cases
JeraldJF Sep 3, 2024
7e330d3
#OBS-I185 : fix: linting fix
JeraldJF Sep 3, 2024
7dff860
#OBS-I164: modified config and rbac middleware
Rakshitha-D Sep 3, 2024
c2657a7
Merge pull request #239 from Sanketika-Obsrv/v2-test-cases
HarishGangula Sep 3, 2024
435c50a
#OBS-I164: added rbac middleware
Rakshitha-D Sep 3, 2024
ee02f93
Merge branch 'v2-apis' of https://github.com/Sanketika-Obsrv/obsrv-ap…
Rakshitha-D Sep 3, 2024
b83a808
#OBS-I164: added jsonwebtoken package
Rakshitha-D Sep 3, 2024
0857ba6
Merge pull request #238 from Sanketika-Obsrv/api_access_control
HarishGangula Sep 3, 2024
95fe03b
V2 apis (#240)
ravismula Sep 5, 2024
ddf183b
Merge remote-tracking branch 'origin/main' into 1.0.7-RC
yashashkumar Sep 5, 2024
c8faf88
Resolved test case issue
yashashkumar Sep 5, 2024
a47593b
Merge conflicts changes
yashashkumar Sep 5, 2024
a161d04
Merge pull request #241 from Sanketika-Obsrv/1.0.7-RC
ravismula Sep 5, 2024
39b14e3
#OBS-I165: added userInfo from token to request object
Rakshitha-D Sep 10, 2024
b85cabf
#OBS-I165: updated telemetry to use user role
Rakshitha-D Sep 10, 2024
627a60b
#OBS-I165: updated datasetCreate api to add userRole as created_by
Rakshitha-D Sep 10, 2024
e33fb97
#OBS-I165: added userRole when migrating and create table from live
Rakshitha-D Sep 10, 2024
27c0940
#OBS-I165: added userRole for data copy api
Rakshitha-D Sep 10, 2024
dde0858
#OBS-I165: added userRole for dataset Update
Rakshitha-D Sep 10, 2024
8e94695
#OBS-I165: added userRole for dataset Import
Rakshitha-D Sep 10, 2024
7556358
#OBS-I165: added userRole for dataset status transition
Rakshitha-D Sep 10, 2024
40987b3
#OBS-I165: modified Dataset Service to update the userRoles
Rakshitha-D Sep 10, 2024
58342b6
#OBS-I165: Merge branch v2_dataset_audit into dataset-audit
Rakshitha-D Sep 10, 2024
e013c29
#OBS-I165: added permission for queryTemplateUpdate api
Rakshitha-D Sep 10, 2024
a88f30c
#OBS-I165: added userRole for query template create and update
Rakshitha-D Sep 10, 2024
c48efd7
#OBS-I165: added userRole for alerts api
Rakshitha-D Sep 11, 2024
5e49317
#OBS-I165: added userRole for notifications api
Rakshitha-D Sep 11, 2024
428db1b
#OBS-I165: added userRole for silences api
Rakshitha-D Sep 11, 2024
d2bffb6
#OBS-I86 : commented routes have regex
yashashkumar Sep 11, 2024
2c99d87
Merge pull request #243 from Sanketika-Obsrv/1.1RC-fix
HarishGangula Sep 11, 2024
23abcc4
#OBS-I77 : query api changes to check datasource avialability v2
JeraldJF Sep 11, 2024
123e483
Merge remote-tracking branch 'origin/1.1-RC' into query-api-enhancements
JeraldJF Sep 11, 2024
6d83507
#OBS-I77 : fix: test cases
JeraldJF Sep 11, 2024
e76e473
#OBS-I165: corrections userRole access in notification
Rakshitha-D Sep 11, 2024
9096b75
#OBS-I165: added operations_admin role and updated permissions
Rakshitha-D Sep 11, 2024
45adebe
#OBS-I165: added rbac middleware for alert routers
Rakshitha-D Sep 11, 2024
02bd46b
#OBS-I165: modified the user permissions into a json object
Rakshitha-D Sep 12, 2024
998a846
#OBS-I165: removed unused code
Rakshitha-D Sep 12, 2024
9dc9e49
#OBS-I203: Remove the archived and purged status transition from the API
SanthoshVasabhaktula Sep 12, 2024
a2e8a24
#OBS-I165: added user permissions json
Rakshitha-D Sep 12, 2024
179e8dc
#OBS-I165: removed user roles for type
Rakshitha-D Sep 12, 2024
6a0bc42
#OBS-I165: added userID to req object and importing permissions from…
Rakshitha-D Sep 12, 2024
52273e9
#OBS-I165: handled rbac disabled scenario and updated userID instead …
Rakshitha-D Sep 12, 2024
2eac48f
#OBS-I165: changed the userRole to userID
Rakshitha-D Sep 12, 2024
0b6c05d
#OBS-I165: added createdby for dataset publish api
Rakshitha-D Sep 12, 2024
6b68ad2
#OBS-I165: added error condition and modified status code
Rakshitha-D Sep 16, 2024
904a526
#OBS-I165: removed redundant code
Rakshitha-D Sep 16, 2024
0ddb49e
#OBS-I222 : Resolved regexp route issue in express version 5
yashashkumar Sep 16, 2024
8a87aea
Merge pull request #247 from Sanketika-Obsrv/1.1RC-fix
HarishGangula Sep 16, 2024
2cdc2ba
#OBS-I165: merged latest code
Rakshitha-D Sep 16, 2024
0a527d4
Merge remote-tracking branch 'origin/1.1-RC' into status-api-changes
yashashkumar Sep 16, 2024
b90f378
Merge pull request #246 from Sanketika-Obsrv/status-api-changes
HarishGangula Sep 16, 2024
aaef037
Merge branch '1.1-RC' into dataset-audit
HarishGangula Sep 16, 2024
6688835
Merge remote-tracking branch 'origin/1.1-RC' into query-api-enhancements
JeraldJF Sep 16, 2024
593cae6
Merge pull request #242 from Sanketika-Obsrv/dataset-audit
HarishGangula Sep 16, 2024
9183129
#OBS-I77 : query api changes to check avialability of datasource
JeraldJF Sep 16, 2024
31fbbef
#OBS-I77 : fix: spell fix
JeraldJF Sep 16, 2024
63625bf
#OBS-I77 : granularity spell changes
JeraldJF Sep 16, 2024
fb3fb40
#OBS-I77 : fix: test scenarios added
JeraldJF Sep 17, 2024
dbbbd2b
Merge pull request #245 from Sanketika-Obsrv/query-api-enhancements
HarishGangula Sep 17, 2024
bb60d4a
#OBS-I131 : fix: stop deleting draft records if submission tasks fail
JeraldJF Sep 17, 2024
586090e
#OBS-I131 : fix: upsert if republished
JeraldJF Sep 17, 2024
8b56049
#OBS-I131 : fix: test case fixes
JeraldJF Sep 17, 2024
aacd420
#OBS-I165: added default userID, modified error codes, added errorhan…
Rakshitha-D Sep 17, 2024
6e50452
#OBS-I165: added updatedby by default when an entry created
Rakshitha-D Sep 17, 2024
cdb55a7
#OBS-I165: removed redundant code
Rakshitha-D Sep 17, 2024
8890173
Merge branch '1.1-RC' into dataset-audit
Rakshitha-D Sep 17, 2024
45f9c61
#OBS-I165: modified errorhandler
Rakshitha-D Sep 17, 2024
ca22857
Merge remote-tracking branch 'origin/1.1-RC' into command-api-changes
JeraldJF Sep 17, 2024
06e7501
Merge pull request #248 from Sanketika-Obsrv/command-api-changes
ravismula Sep 17, 2024
d470c48
Merge branch '1.1-RC' into dataset-audit
Rakshitha-D Sep 17, 2024
0f148a0
#OBS-I165: modified error message
Rakshitha-D Sep 17, 2024
c4ef342
Merge pull request #249 from Sanketika-Obsrv/dataset-audit
HarishGangula Sep 17, 2024
cd11e2c
#OBS-I227 : fix: threshold of dataset level alerts inside an array.
JeraldJF Sep 18, 2024
4f8dee1
#OBS-I179 : feat: retire dataset related alerts and metrics on datase…
JeraldJF Sep 18, 2024
a1e8a07
#OBS-I79: feat: test case fixes
JeraldJF Sep 18, 2024
1989e53
#OBS-I79: feat: Alerts get fix
JeraldJF Sep 18, 2024
e5f0e07
Merge pull request #250 from Sanketika-Obsrv/retire-alerts
HarishGangula Sep 18, 2024
85eeb07
Merge pull request #251 from Sanketika-Obsrv/1.1-RC
ravismula Sep 24, 2024
2045b14
feat: command tag name change (#252)
JeraldJF Sep 24, 2024
c59c309
feat: command tag name change (#252) (#254)
JeraldJF Sep 24, 2024
ae6ac6b
#0000 fix: ingestion spec cache fix
JeraldJF Sep 26, 2024
ac00d67
Merge remote-tracking branch 'origin/1.1-RC' into ingestion-spec-fix
JeraldJF Sep 26, 2024
03c2302
Ingestion spec fix (#255)
JeraldJF Sep 30, 2024
1b728ec
#OBS-I230: fix: kafka command
JeraldJF Sep 30, 2024
9aea6ba
#OBS-I230: fix: cache issues changes
JeraldJF Sep 30, 2024
a173dbc
#OBS-I230: fix: redis db number change on update
JeraldJF Oct 1, 2024
e9f2ebc
#OBS-I187: added model for user
Rakshitha-D Oct 1, 2024
c8d7a8d
#OBS-I187: added userService
Rakshitha-D Oct 1, 2024
b3bb16a
#OBS-I187: modified to verify keycloak token
Rakshitha-D Oct 1, 2024
a4e0b04
#OBS-I187: updated rbac middleware
Rakshitha-D Oct 1, 2024
47fb492
Merge branch '1.1-RC' into dataset-audit
Rakshitha-D Oct 1, 2024
9e33752
#OBS-I187: add seperate function to check access
Rakshitha-D Oct 2, 2024
2faf429
#OBS-I230: fix: integration fixes
JeraldJF Oct 2, 2024
18bbd91
Merge pull request #257 from Sanketika-Obsrv/ingestion-spec-fix
HarishGangula Oct 3, 2024
811ce89
#OBS-I230: fix: kafka command fixes
JeraldJF Oct 3, 2024
5517bac
Merge remote-tracking branch 'origin/1.1-RC' into ingestion-spec-fix
JeraldJF Oct 4, 2024
8b0ec90
#OBS-I247: fix: feedback changes.
JeraldJF Oct 4, 2024
3a4d302
Merge branch 'main' into 1.1-RC
ravismula Oct 4, 2024
252982a
#OBS-I230: fix: kafka command fixes (#258)
JeraldJF Oct 4, 2024
d2d1907
Merge branch '1.1-RC' into dataset-audit
Rakshitha-D Oct 7, 2024
40f1191
Merge pull request #256 from Sanketika-Obsrv/dataset-audit
HarishGangula Oct 7, 2024
53c8abd
Merge remote-tracking branch 'origin/1.1-RC' into ingestion-spec-fix
JeraldJF Oct 16, 2024
248b059
#OBS-I218 update kafka connector image tags
ravismula Oct 18, 2024
e84dc4b
#OBS-I250: Generation of AUDIT events in the openTelemetry format
manjudr Oct 21, 2024
336f5de
Merge pull request #259 from Sanketika-Obsrv/1.1-RC
HarishGangula Oct 22, 2024
3c4901f
#OBS-I288: fix: removed data_format field from connector_instance (#260)
SurabhiAngadi Oct 23, 2024
b9e496b
#OBS-I285: query api fix to validate and set limit to sql queries
JeraldJF Oct 24, 2024
67a085a
Merge remote-tracking branch 'origin/main' into query-api-fixes
JeraldJF Oct 24, 2024
5048efe
#I285: removed empty objects and arrays from sample data (#261)
HarishGangula Oct 24, 2024
a072199
#OBS-I285: query api to parse sql query first then do regex check wit…
JeraldJF Oct 24, 2024
76e075f
Merge remote-tracking branch 'origin/main' into query-api-fixes
JeraldJF Oct 24, 2024
16b332b
#OBS-I285: fix: linting issue fix
JeraldJF Oct 24, 2024
1287311
#OBS-I285: fix: lint fix
JeraldJF Oct 24, 2024
33c8310
Merge pull request #262 from Sanketika-Obsrv/query-api-fixes
HarishGangula Oct 24, 2024
c90606f
#OBS-I285: fix: Logging errors in the middleware (#263)
JeraldJF Oct 25, 2024
5a16257
#OBS-I289 : added route (#265)
yashashkumar Oct 25, 2024
43a9992
fix: Stop the connectors specific to the dataset. (#266)
SurabhiAngadi Oct 30, 2024
f8d8309
#OBS-I289 fix: Fix flink connector deployments
anandp504 Oct 29, 2024
d4f0bf0
#OBS-I289 fix: Fix Spark Connector deployments
anandp504 Oct 30, 2024
57bf54b
Merge pull request #267 from Sanketika-Obsrv/connector-fixes
SanthoshVasabhaktula Oct 30, 2024
2900c63
#000: Open Telemetry Integration: Generation of system events as open…
manjudr Nov 5, 2024
680fdcb
#OBS-I307 - revert the code as this is fixed from the front end (#268)
SanthoshVasabhaktula Nov 5, 2024
0a9236b
#OBS-I330 : changed type from hudi to datalake
yashashkumar Nov 6, 2024
96ce680
fix for object-store-connector cron (#269)
ravismula Nov 6, 2024
b92ed05
#OBS-I330 : fixed merging issue
yashashkumar Nov 11, 2024
68c1839
#OBS-I330 : removed comment
yashashkumar Nov 11, 2024
5765cd7
Merge pull request #270 from Sanketika-Obsrv/hudi-fixes
HarishGangula Nov 11, 2024
070452e
#OBS-I330 : Using dataset v2 export api while publishing
yashashkumar Nov 11, 2024
db6eac0
#OBS-I330 : removed print statement
yashashkumar Nov 11, 2024
e29622f
#OBS-I330 : Using dataset v2 export api while publishing (#271)
yashashkumar Nov 11, 2024
ffead49
#OBS-I330 : Replacing - with _ for datasource_ref and adding partitio…
yashashkumar Nov 11, 2024
2555e09
Merge remote-tracking branch 'origin/main' into hudi-fixes
yashashkumar Nov 11, 2024
7dfee90
Hudi fixes (#272)
yashashkumar Nov 11, 2024
8957175
fix: update connector instance id when inserting to db
SurabhiAngadi Nov 11, 2024
390a0ca
Merge pull request #273 from Sanketika-Obsrv/commad-service-fix
SanthoshVasabhaktula Nov 11, 2024
dda2f4a
#OBS-I330 : removed merging defaults to keys_config
yashashkumar Nov 11, 2024
4d4b807
Merge branch 'main' into hudi-fixes
yashashkumar Nov 11, 2024
8de4a12
#OBS-I330 : omit merging defaults to draft dataset for keys_config
yashashkumar Nov 12, 2024
fe69a8b
Merge pull request #274 from Sanketika-Obsrv/hudi-fixes
HarishGangula Nov 12, 2024
2e50acf
#OBS-I335: hudi spec fix
JeraldJF Nov 12, 2024
9be0bc4
Merge remote-tracking branch 'origin/main' into hudi-spec-fix
JeraldJF Nov 12, 2024
885bbf1
#OBS-I335: hudi spec fix
JeraldJF Nov 12, 2024
8c601e4
#OBS-I335: linting fix
JeraldJF Nov 12, 2024
3872825
#OBS-I334 - clear transformations on re-upload
SanthoshVasabhaktula Nov 12, 2024
02d51ba
#OBS-I334 - clear keys_config on re-upload of schema file
SanthoshVasabhaktula Nov 12, 2024
1d2fec8
Merge pull request #275 from Sanketika-Obsrv/hudi-spec-fix
HarishGangula Nov 12, 2024
9ce2373
#OBS-I335: dataset update fix
JeraldJF Nov 13, 2024
a3c3459
#OBS-I335: loop bound issue fix
JeraldJF Nov 13, 2024
939893d
#OBS-I335: dataset updated as per feedbacks
JeraldJF Nov 13, 2024
9880b2f
append base64 prefix upon connector register
ravismula Nov 13, 2024
c01be2a
#OBS-I334 - Fix the schema update functionality
SanthoshVasabhaktula Nov 13, 2024
6d1cb44
Merge branch 'hudi-spec-fix' of github.com:Sanketika-Obsrv/obsrv-api-…
SanthoshVasabhaktula Nov 13, 2024
812ffbe
Merge pull request #277 from Sanketika-Obsrv/connector_image_fix
SanthoshVasabhaktula Nov 13, 2024
25ec1f0
Merge pull request #276 from Sanketika-Obsrv/hudi-spec-fix
SanthoshVasabhaktula Nov 13, 2024
a9157d8
Data mapping fix (#278)
HarishGangula Nov 13, 2024
40b33f2
#OBS-I335: hudi spec fix (#279)
JeraldJF Nov 13, 2024
aae31f9
#OBS-I352 : updated swagger doc (#280)
yashashkumar Nov 19, 2024
b8221a9
#000: Obsrv Installation Documentation - 1.2.0-RC
manjudr Nov 19, 2024
019cd21
Merge pull request #281 from Sanketika-Obsrv/merge-conflicts
HarishGangula Nov 19, 2024
46c7c86
#000: Obsrv Installation Documentation - 1.2.0-RC
manjudr Nov 19, 2024
ec653b2
#OBS-I352: feat: Postman collection of open source apis (#282)
JeraldJF Nov 19, 2024
07a4169
Merge pull request #283 from Sanketika-Obsrv/api-doc
HarishGangula Nov 19, 2024
505c3c6
#000: Obsrv Installation Documentation - 1.2.0-RC
manjudr Nov 19, 2024
d5405f9
#000: Obsrv Installation Documentation - 1.2.0-RC
manjudr Nov 21, 2024
b1edeb6
Updated swagger doc (#284)
yashashkumar Nov 21, 2024
c8cfa80
#000: Obsrv Installation Documentation - 1.2.0-RC
manjudr Nov 21, 2024
318fcd7
#000: Obsrv Installation Documentation - 1.2.0-RC
manjudr Nov 21, 2024
3e8d324
Merge remote-tracking branch 'origin' into open-telemetry
Nov 25, 2024
4a34787
#I250: Obsrv API Service: Generation of open telemetry log for the au…
Nov 26, 2024
5dd06be
#I250: Removed the white spaces
Nov 26, 2024
0aa72c0
#I250: Removed the hardcoded postgres details
Nov 26, 2024
61ab1a2
#I250: Variablised the open telemetry endpoint information
Nov 26, 2024
452b81f
#I250: Moved the file from otel to services
Nov 26, 2024
88f7fba
#I250: Moved the file from otel to services
Nov 26, 2024
33a1c69
#I250: Moved the file from otel to services
Nov 26, 2024
559b439
#I250: comparison fix
HarishGangula Nov 27, 2024
56f4cb4
#I250: comparison fix
HarishGangula Nov 27, 2024
640a845
#I250: config updated
HarishGangula Nov 27, 2024
d6a49f6
Merge pull request #285 from Sanketika-Obsrv/open-telemetry
HarishGangula Nov 27, 2024
35c4370
#OBS-I338 spark worker fixes (#286)
ravismula Nov 27, 2024
cc128fb
#I250: Updated the configurations of open telemetry service
Nov 28, 2024
af3b8d4
#I250: Resolved the merge conflicts
Nov 28, 2024
4ad396b
#I250: Moved the file from otel to services
Nov 28, 2024
a2a61a3
Merge pull request #287 from Sanketika-Obsrv/open-telemetry
HarishGangula Nov 28, 2024
397922d
#OBS-I339: updated rbac algorithm and bearer token
Rakshitha-D Dec 1, 2024
8b194e3
#OBS-I339: added druid proxy
Rakshitha-D Dec 1, 2024
38b311d
#I250: Following the strandrads in the configurations (#288)
manjudr Dec 2, 2024
255ffbf
#OBS-I339: handling object type
Rakshitha-D Dec 2, 2024
1cc3699
#OBS-I339: handling object removed
Rakshitha-D Dec 2, 2024
a6fea9b
#OBS-I339: removed space
Rakshitha-D Dec 2, 2024
244a9f1
Merge pull request #289 from Sanketika-Obsrv/rbac-update
HarishGangula Dec 2, 2024
0f207bd
Merge remote-tracking branch 'origin/main' into ingestion-spec-fix
JeraldJF Dec 2, 2024
e9a35f1
#OBS-I375: fix: fixing the expression field having spaces within it i…
JeraldJF Dec 3, 2024
509f88d
#OBS-I375: fix: reverting changes for hudi spec
JeraldJF Dec 3, 2024
3ed1018
#OBS-I369: fix: aws storage service changes
JeraldJF Dec 3, 2024
bb88954
Merge pull request #290 from Sanketika-Obsrv/ingestion-spec-fix
HarishGangula Dec 3, 2024
1e23bd1
Vulnerability fixes (#292)
HarishGangula Dec 16, 2024
90a024b
#OBS-I410: updated list api to return connectors_config and version_k…
Rakshitha-D Dec 17, 2024
52b08ca
#OBS-I410: added requierd fields for draft datasets
Rakshitha-D Dec 18, 2024
13f595d
#OBS-I410: formatted
Rakshitha-D Dec 18, 2024
ecffa25
fix: updated configuration for aws storage service
SurabhiAngadi Dec 19, 2024
bd4c8bd
Merge pull request #294 from Sanketika-Obsrv/api-service-fix
ravismula Dec 19, 2024
ada7581
#OBS-I418 update ns for flink connectors
ravismula Dec 19, 2024
768db5b
Merge remote-tracking branch 'origin' into datasetListUpdate
Rakshitha-D Dec 23, 2024
2e2ca31
Merge pull request #293 from Sanketika-Obsrv/datasetListUpdate
HarishGangula Dec 23, 2024
ae4824c
#OBS-I441 fix spark connector deployments
ravismula Dec 24, 2024
6bd53a9
#OBS-I441: replcae datetime with time module
SurabhiAngadi Dec 24, 2024
9fa14dd
#OBS-I441 fix flink connector deployments
ravismula Dec 26, 2024
2e03922
Merge pull request #296 from Sanketika-Obsrv/I441-connector-deploymen…
ravismula Dec 26, 2024
382e6b8
Merge pull request #297 from Sanketika-Obsrv/release-1.3.1
ravismula Dec 26, 2024
ef8fa4f
#OBS-I442 Removed env for topics
HarishGangula Dec 27, 2024
f12ef8d
#OBS-I441 update deployment of connectors
ravismula Dec 30, 2024
0a8100d
Merge pull request #298 from Sanketika-Obsrv/Env-fixes
ravismula Dec 30, 2024
f287077
#OBS-I435: updated defaults
HarishGangula Dec 30, 2024
022d011
Merge pull request #299 from Sanketika-Obsrv/Env-fixes
ravismula Dec 30, 2024
724839f
#I176: Integration of wrapper API to pull the datasources information…
Dec 30, 2024
b55c61c
Merge remote-tracking branch 'origin' into query-wrapper-superset
Dec 30, 2024
03e21f7
#OBS-I408: data schema fix for proper mappings and data type suggestions
JeraldJF Dec 30, 2024
0b3b4a5
#I176: Review comment fix - Case senstive fix
Dec 30, 2024
9c876ab
Merge pull request #301 from Sanketika-Obsrv/query-wrapper-superset
HarishGangula Dec 30, 2024
619cf01
Merge pull request #300 from Sanketika-Obsrv/data-schema-fix
HarishGangula Dec 30, 2024
ac306e6
fix: #OBS-I441 added labels for cronjob
SurabhiAngadi Dec 31, 2024
655bb5f
Merge pull request #302 from Sanketika-Obsrv/I441-connector-deploymen…
ravismula Dec 31, 2024
02e8586
fix: #OBS-I406 storage type support read from envs
JeraldJF Dec 31, 2024
9aeb6fc
Merge remote-tracking branch 'origin/main' into data-schema-fix
JeraldJF Dec 31, 2024
0f5197d
fix: #OBS-I406 storage type support envs
JeraldJF Jan 2, 2025
d107ebd
fix: #OBS-I406 plural envs
JeraldJF Jan 2, 2025
b1e9744
Merge pull request #303 from Sanketika-Obsrv/data-schema-fix
HarishGangula Jan 2, 2025
30c0b28
fix: #OBS-I406 storage type support envs as json
JeraldJF Jan 3, 2025
b78add1
Merge pull request #304 from Sanketika-Obsrv/data-schema-fix
HarishGangula Jan 3, 2025
ce5b774
fix #OBS-I479 ingestion batch structure fix
HarishGangula Jan 9, 2025
ad844b9
Merge pull request #305 from Sanketika-Obsrv/data-ingestion-fix
ravismula Jan 9, 2025
d6937f9
fix: #OBS-I354 dataset level alert metric caching issue fix
JeraldJF Jan 9, 2025
863ea53
fix: #OBS-I354 ingestion spec expression fix for transformations
JeraldJF Jan 9, 2025
2f68441
fix: #OBS-I354 default field expr fix
JeraldJF Jan 9, 2025
a53ea42
Merge pull request #306 from Sanketika-Obsrv/dataset-metrics-fix
ravismula Jan 9, 2025
f3175e5
fix: #OBS-I494: updated permissions for admin user
Rakshitha-D Jan 10, 2025
edff55d
Merge pull request #307 from Sanketika-Obsrv/permission_update
HarishGangula Jan 10, 2025
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
4 changes: 3 additions & 1 deletion api-service/.dockerignore
Original file line number Diff line number Diff line change
@@ -1 +1,3 @@
node_modules
node_modules
api-service/postman-collection
postman-collection
3 changes: 2 additions & 1 deletion api-service/Dockerfile
Original file line number Diff line number Diff line change
@@ -1,7 +1,8 @@
FROM --platform=linux/amd64 node:20-alpine
FROM --platform=linux/amd64 node:23.4-alpine
RUN mkdir -p /opt/api-service
COPY ./api-service ./opt/api-service
WORKDIR /opt/api-service
RUN rm -rf postman-collection
RUN npm install
COPY . .
EXPOSE 3000
Expand Down
11 changes: 11 additions & 0 deletions api-service/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,17 @@
"@azure/storage-blob": "^12.17.0",
"@google-cloud/storage": "^7.9.0",
"@jsonhero/schema-infer": "^0.1.5",
"@opentelemetry/api": "^1.9.0",
"@opentelemetry/exporter-logs-otlp-http": "^0.53.0",
"@opentelemetry/exporter-metrics-otlp-http": "^0.53.0",
"@opentelemetry/exporter-trace-otlp-http": "^0.55.0",
"@opentelemetry/resources": "^1.28.0",
"@opentelemetry/sdk-logs": "^0.53.0",
"@opentelemetry/sdk-metrics": "^1.26.0",
"@opentelemetry/sdk-node": "^0.53.0",
"@opentelemetry/sdk-trace-base": "^1.28.0",
"@opentelemetry/sdk-trace-node": "^1.28.0",
"@opentelemetry/semantic-conventions": "^1.28.0",
"@project-sunbird/logger": "^0.0.9",
"ajv": "^8.11.2",
"ajv-formats": "^2.1.1",
Expand Down
3,099 changes: 2,229 additions & 870 deletions api-service/postman-collection/Obsrv v2 apis.postman_collection.json

Large diffs are not rendered by default.

18 changes: 12 additions & 6 deletions api-service/src/app.ts
Original file line number Diff line number Diff line change
@@ -1,17 +1,23 @@
import express, { Application } from "express";
import {router as v2Router} from "./routes/Router"
import { metricRouter } from "./routes/MetricRouter"
import { druidProxyRouter } from "./routes/DruidProxyRouter"
import { druidProxyRouter } from "./routes/DruidProxyRouter";
import { metricRouter } from "./routes/MetricRouter";
import { router as v2Router } from "./routes/Router";

import bodyParser from "body-parser";
import { errorHandler, obsrvErrorHandler } from "./middlewares/errors";
import { ResponseHandler } from "./helpers/ResponseHandler";
import { config } from "./configs/Config";
import { ResponseHandler } from "./helpers/ResponseHandler";
import { errorHandler, obsrvErrorHandler } from "./middlewares/errors";
import { OTelService } from "./services/otel/OTelService";
import { alertsRouter } from "./routes/AlertsRouter";
import { interceptAuditEvents } from "./services/telemetry";
import _ from "lodash";



const app: Application = express();

// Initialisation of Open telemetry Service.
(config.otel && _.toLower(config?.otel?.enable) === "true") ? OTelService.init() : console.info("OpenTelemetry Service is Disabled");

app.use(bodyParser.json({ limit: config.body_parser_limit}));
app.use(express.text());
app.use(express.json());
Expand Down
9 changes: 7 additions & 2 deletions api-service/src/configs/Config.ts
Original file line number Diff line number Diff line change
Expand Up @@ -42,8 +42,8 @@ export const config = {
"connectionTimeout": process.env.kafka_connection_timeout ? parseInt(process.env.kafka_connection_timeout) : 5000
},
"topics": { // Default Kafka topics depend on type of dataset.
"createDataset": `${process.env.system_env || "local"}.ingest`,
"createMasterDataset": `${process.env.system_env || "local"}.masterdata.ingest`
"createDataset": `ingest`,
"createMasterDataset": `masterdata.ingest`
}
}
},
Expand Down Expand Up @@ -115,4 +115,9 @@ export const config = {
},
"user_token_public_key": process.env.user_token_public_key || "",
"is_RBAC_enabled": process.env.is_rbac_enabled || "false",
"otel": {
"enable": process.env.otel_enable || "false",
"collector_endpoint": process.env.otel_collector_endpoint || "http://localhost:4318"
},
"storage_types": process.env.storage_types || '{"lake_house":true,"realtime_store":true}'
}
2 changes: 1 addition & 1 deletion api-service/src/configs/DatasetConfigDefault.ts
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ export const defaultDatasetConfig = {
}
},
"dedup_config": {
"drop_duplicates": true,
"drop_duplicates": false,
"dedup_key": "id",
"dedup_period": 604800, // 7 days
},
Expand Down
4 changes: 2 additions & 2 deletions api-service/src/configs/IngestionConfig.ts
Original file line number Diff line number Diff line change
Expand Up @@ -84,12 +84,12 @@ export const rawIngestionSpecDefaults = {
"flattenSpec": [
{
"type": "path",
"expr": "$.obsrv_meta.source.connector",
"expr": "$.obsrv_meta.source.entry_source",
"name": "obsrv.meta.source.connector"
},
{
"type": "path",
"expr": "$.obsrv_meta.source.connectorInstance",
"expr": "$.obsrv_meta.source.id",
"name": "obsrv.meta.source.id"
}
],
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -39,34 +39,34 @@ const dataIn = async (req: Request, res: Response) => {
logger.error({ apiId, message: `Dataset with id ${datasetId} not found in live table`, code: "DATASET_NOT_FOUND" })
return ResponseHandler.errorResponse(errorObject.datasetNotFound, req, res);
}
const { entry_topic, dataset_config, api_version } = dataset
const { entry_topic, dataset_config, extraction_config, api_version } = dataset
const entryTopic = api_version !== "v2" ? _.get(dataset_config, "entry_topic") : entry_topic
if (!entryTopic) {
logger.error({ apiId, message: "Entry topic not found", code: "TOPIC_NOT_FOUND" })
return ResponseHandler.errorResponse(errorObject.topicNotFound, req, res);
}
await send(addMetadataToEvents(datasetId, requestBody), entryTopic)
await send(addMetadataToEvents(datasetId, requestBody, extraction_config), entryTopic)
ResponseHandler.successResponse(req, res, { status: 200, data: { message: "Data ingested successfully" } });

}

const addMetadataToEvents = (datasetId: string, payload: any) => {
const addMetadataToEvents = (datasetId: string, payload: any, extraction_config: any) => {
const validData = _.get(payload, "data");
const now = Date.now();
const mid = _.get(payload, "params.msgid");
const source = { id: "api.data.in", version: config?.version, entry_source: "api" };
const obsrvMeta = { syncts: now, flags: {}, timespans: {}, error: {}, source: source };
if (Array.isArray(validData)) {
const payloadRef = validData.map((event: any) => {
const payload = {
event,
const extraction_key: string = _.get(extraction_config, "extraction_key", 'events');
const dedup_key: string = _.get(extraction_config, "dedup_config.dedup_key", 'id');
const payload: any = {
"obsrv_meta": obsrvMeta,
"dataset": datasetId,
"msgid": mid
}
};
payload[extraction_key] = validData;
payload[dedup_key] = mid
return payload;
})
return payloadRef;
}
else {
return ({
Expand Down
3 changes: 2 additions & 1 deletion api-service/src/controllers/DatasetCopy/DatasetCopy.ts
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ import { ResponseHandler } from "../../helpers/ResponseHandler";
import * as _ from "lodash";
import { schemaValidation } from "../../services/ValidationService";
import validationSchema from "./RequestValidationSchema.json";
import { datasetService, getLiveDatasetConfigs } from "../../services/DatasetService";
import { datasetService, getLiveDatasetConfigs, validateStorageSupport } from "../../services/DatasetService";
import { updateRecords } from "./DatasetCopyHelper";
import { obsrvError } from "../../types/ObsrvError";

Expand Down Expand Up @@ -40,6 +40,7 @@ const datasetCopy = async (req: Request, res: Response) => {
validateRequest(req);
const newDatasetId = _.get(req, "body.request.destination.datasetId");
const dataset = await fetchDataset(req);
validateStorageSupport(dataset);
const userID = (req as any)?.userID;
_.set(dataset, "created_by", userID);
_.set(dataset, "updated_by", userID);
Expand Down
3 changes: 2 additions & 1 deletion api-service/src/controllers/DatasetCreate/DatasetCreate.ts
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import _ from "lodash";
import { Request, Response } from "express";
import httpStatus from "http-status";
import { datasetService } from "../../services/DatasetService";
import { datasetService, validateStorageSupport } from "../../services/DatasetService";
import DatasetCreate from "./DatasetCreateValidationSchema.json";
import { schemaValidation } from "../../services/ValidationService";
import { ResponseHandler } from "../../helpers/ResponseHandler";
Expand All @@ -28,6 +28,7 @@ const validateRequest = async (req: Request) => {
throw obsrvError(datasetId, "DATASET_DUPLICATE_DENORM_KEY", "Duplicate denorm output fields found.", "BAD_REQUEST", 400, undefined, {duplicateKeys: duplicateDenormKeys})
}

validateStorageSupport(_.get(req, ["body", "request"]))
}

const datasetCreate = async (req: Request, res: Response) => {
Expand Down
11 changes: 8 additions & 3 deletions api-service/src/controllers/DatasetImport/DatasetImport.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ import { Request, Response } from "express";
import { ResponseHandler } from "../../helpers/ResponseHandler";
import httpStatus from "http-status";
import _ from "lodash";
import { datasetService } from "../../services/DatasetService";
import { datasetService, validateStorageSupport } from "../../services/DatasetService";
import { datasetImportValidation, migrateExportedDatasetV1 } from "./DatasetImportHelper";
import { obsrvError } from "../../types/ObsrvError";

Expand All @@ -15,18 +15,23 @@ const datasetImport = async (req: Request, res: Response) => {
const migratedConfigs = migrateExportedDatasetV1(requestBody)
datasetPayload = migratedConfigs;
}
const userID = (req as any)?.userID;
_.set(datasetPayload, "created_by", userID);
_.set(datasetPayload, "updated_by", userID);
const { updatedDataset, ignoredFields } = await datasetImportValidation({ ...requestBody, "request": datasetPayload })
const { successMsg, partialIgnored } = getResponseData(ignoredFields)

const dataset = await importDataset(updatedDataset, overwrite);
validateStorageSupport(updatedDataset);
const dataset = await importDataset(updatedDataset, overwrite, userID);
ResponseHandler.successResponse(req, res, { status: httpStatus.OK, data: { message: successMsg, data: dataset, ...(!_.isEmpty(partialIgnored) && { ignoredFields: partialIgnored }) } });
}

const importDataset = async (dataset: Record<string, any>, overwrite: string | any) => {
const importDataset = async (dataset: Record<string, any>, overwrite: string | any, userID : string) => {
const dataset_id = _.get(dataset,"dataset_id")
const response = await datasetService.createDraftDataset(dataset).catch(err => { return err })
if (response?.name === "SequelizeUniqueConstraintError") {
if (overwrite === "true") {
_.set(dataset, "updated_by", userID);
const overwriteRes = await datasetService.updateDraftDataset(dataset).catch(()=>{
throw obsrvError(dataset_id, "DATASET_IMPORT_FAILURE", `Failed to import dataset: ${dataset_id} as overwrite failed`, "INTERNAL_SERVER_ERROR", 500);
})
Expand Down
2 changes: 1 addition & 1 deletion api-service/src/controllers/DatasetList/DatasetList.ts
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ const listDatasets = async (request: Record<string, any>): Promise<Record<string
const draftFilters = _.set(_.cloneDeep(filters), "status", _.isEmpty(status) ? draftDatasetStatus : _.intersection(status, draftDatasetStatus));
const liveFilters = _.set(_.cloneDeep(filters), "status", _.isEmpty(status) ? liveDatasetStatus : _.intersection(status, liveDatasetStatus));
const liveDatasetList = await datasetService.findDatasets(liveFilters, defaultFields, [["updated_date", "DESC"]]);
const draftDatasetList = await datasetService.findDraftDatasets(draftFilters, defaultFields, [["updated_date", "DESC"]]);
const draftDatasetList = await datasetService.findDraftDatasets(draftFilters, [...defaultFields, "data_schema", "validation_config", "dedup_config", "denorm_config", "connectors_config", "version_key"], [["updated_date", "DESC"]]);
return _.compact(_.concat(liveDatasetList, draftDatasetList));
}

Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import { Request, Response } from "express";
import _ from "lodash";
import { ResponseHandler } from "../../helpers/ResponseHandler";
import { datasetService } from "../../services/DatasetService";
import { datasetService, validateStorageSupport } from "../../services/DatasetService";
import { schemaValidation } from "../../services/ValidationService";
import StatusTransitionSchema from "./RequestValidationSchema.json";
import ReadyToPublishSchema from "./ReadyToPublishSchema.json"
Expand Down Expand Up @@ -88,6 +88,7 @@ const deleteDataset = async (dataset: Record<string, any>) => {
const readyForPublish = async (dataset: Record<string, any>, updated_by: any) => {

const draftDataset: any = await datasetService.getDraftDataset(dataset.dataset_id)
validateStorageSupport(draftDataset);
let defaultConfigs: any = _.cloneDeep(defaultDatasetConfig)
defaultConfigs = _.omit(defaultConfigs, ["router_config"])
defaultConfigs = _.omit(defaultConfigs, "dedup_config.dedup_key");
Expand Down Expand Up @@ -136,6 +137,7 @@ const readyForPublish = async (dataset: Record<string, any>, updated_by: any) =>
const publishDataset = async (dataset: Record<string, any>, userID: any) => {

const draftDataset: Record<string, any> = await datasetService.getDraftDataset(dataset.dataset_id) as unknown as Record<string, any>
validateStorageSupport(draftDataset);
_.set(draftDataset, ["created_by"], userID);
_.set(draftDataset, ["updated_by"], userID);
await validateAndUpdateDenormConfig(draftDataset);
Expand Down
3 changes: 2 additions & 1 deletion api-service/src/controllers/DatasetUpdate/DatasetUpdate.ts
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ import Model from "sequelize/types/model";
import { DatasetStatus } from "../../types/DatasetModels";
import { ResponseHandler } from "../../helpers/ResponseHandler";
import { cipherService } from "../../services/CipherService";
import { datasetService } from "../../services/DatasetService";
import { datasetService, validateStorageSupport } from "../../services/DatasetService";
import { schemaValidation } from "../../services/ValidationService";
import DatasetUpdate from "./DatasetUpdateValidationSchema.json";
import { obsrvError } from "../../types/ObsrvError";
Expand All @@ -30,6 +30,7 @@ const validateRequest = async (req: Request) => {
throw obsrvError(datasetId, "DATASET_UPDATE_NO_FIELDS", "Provide atleast one field in addition to the dataset_id to update the dataset", "BAD_REQUEST", 400)
}

validateStorageSupport(_.get(req, ["body", "request"]))
}

const validateDataset = (dataset: Record<string, any> | null, req: Request) => {
Expand Down
51 changes: 46 additions & 5 deletions api-service/src/controllers/QueryWrapper/SqlQueryWrapper.ts
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,8 @@ import logger from "../../logger";
import { ResponseHandler } from "../../helpers/ResponseHandler";
import { ErrorObject } from "../../types/ResponseModel";
import { druidHttpService } from "../../connections/druidConnection";
import { getDatasourceList } from "../../services/DatasourceService";
import { AxiosResponse } from "axios";

const apiId = "api.obsrv.data.sql-query";
const errorCode = "SQL_QUERY_FAILURE"
Expand All @@ -25,10 +27,16 @@ export const sqlQuery = async (req: Request, res: Response) => {
} as ErrorObject, req, res);
}

const result = await druidHttpService.post(`${config.query_api.druid.sql_query_path}`, req.body, {
headers: { Authorization: authorization },
});

const query = req.body.query as string;
let result: AxiosResponse;
if (isTableSchemaQuery(query)) {
const dataSources = await fetchDruidDataSources();
result = createMockAxiosResponse(dataSources);
} else {
result = await druidHttpService.post(`${config.query_api.druid.sql_query_path}`, req.body, {
headers: { Authorization: authorization },
});
}
logger.info({ messsge: "Successfully fetched data using sql query", apiId, resmsgid })
ResponseHandler.flatResponse(req, res, result)
} catch (error: any) {
Expand All @@ -37,4 +45,37 @@ export const sqlQuery = async (req: Request, res: Response) => {
logger.error(error, apiId, code, resmsgid)
ResponseHandler.errorResponse(errorMessage, req, res);
}
}
}

const fetchDruidDataSources = async (): Promise<{ TABLE_NAME: string }[]> => {
try {
const dataSources = await getDatasourceList();
return dataSources
.filter((ds: any) => ds.type === "druid")
.map((ds: any) => ({ TABLE_NAME: ds.dataValues.datasource_ref }));
} catch (error) {
logger.error({ message: "Failed to fetch Druid data sources", error });
throw new Error("Failed to fetch Druid data sources");
}
};

const isTableSchemaQuery = (sqlQuery?: string): boolean => {
return (
sqlQuery
?.trim()
.replace(/\s+/g, " ")
.toUpperCase() ===
"SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA = 'DRUID'"
);
};


const createMockAxiosResponse = (data: any): AxiosResponse => {
return {
data,
status: 200,
statusText: "OK",
headers: {},
config: {},
} as AxiosResponse;
};
6 changes: 3 additions & 3 deletions api-service/src/middlewares/RBAC_middleware.ts
Original file line number Diff line number Diff line change
Expand Up @@ -77,7 +77,7 @@ const checkAccess = (decoded: any, action: string, req: Request, res: Response)

const basicToken = (token: string, req: Request, res: Response, next: NextFunction) => {
try {
const decoded = jwt.verify(token, config.user_token_public_key);
const decoded = jwt.verify(token, config.user_token_public_key, { algorithms: ['RS256'] });

if (!decoded || !_.isObject(decoded)) {
return errorHandler(401, "Token verification failed or invalid token", req, res);
Expand Down Expand Up @@ -125,8 +125,8 @@ export default {
(req as any).userID = "SYSTEM";
return next();
}

const token = req.get("x-user-token");
const authHeader = req.headers['authorization'];
const token = authHeader && authHeader.split(' ')[1];
if (!token) {
return errorHandler(401, "No token provided", req, res);
}
Expand Down
8 changes: 6 additions & 2 deletions api-service/src/middlewares/userPermissions.json
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@
"api.datasets.list",
"api.datasets.read",
"api.datasets.export",
"api.dataset.health",
"api.data.out",
"api.data.exhaust",
"api.alert.list",
Expand Down Expand Up @@ -46,7 +47,6 @@
"api.datasets.update",
"api.datasets.import",
"api.datasets.copy",
"api.dataset.health",
"api.datasets.dataschema"
],
"data": [
Expand Down Expand Up @@ -116,7 +116,11 @@
"file",
"connector",
"sqlQuery",
"restricted_dataset_api"
"restricted_dataset_api",
"alert",
"metric",
"silence",
"notificationChannel"
],
"operations_admin": [
"alert",
Expand Down
Loading