Skip to content

sap-success-factors#27664

Open
varun-lakhyani wants to merge 1 commit intoopen-metadata:mainfrom
varun-lakhyani:sap-sf
Open

sap-success-factors#27664
varun-lakhyani wants to merge 1 commit intoopen-metadata:mainfrom
varun-lakhyani:sap-sf

Conversation

@varun-lakhyani
Copy link
Copy Markdown
Member

@varun-lakhyani varun-lakhyani commented Apr 23, 2026

Describe your changes:

Fixes

I worked on ... because ...

Type of change:

  • Bug fix
  • Improvement
  • New feature
  • Breaking change (fix or feature that would cause existing functionality to not work as expected)
  • Documentation

Checklist:

  • I have read the CONTRIBUTING document.
  • My PR title is Fixes <issue-number>: <short explanation>
  • I have commented on my code, particularly in hard-to-understand areas.
  • For JSON Schema changes: I updated the migration scripts or explained why it is not needed.

Summary by Gitar

  • New Database Connector:
    • Added SapSuccessFactors database connector with support for BasicAuth and OAuth2Credentials.
    • Defined connection schema in sapSuccessFactorsConnection.json and added test connection configurations.
  • Core Integration:
    • Registered SapSuccessFactors in databaseService.json and updated ServiceType constants for UI integration.

This will update automatically on new commits.

@varun-lakhyani varun-lakhyani requested a review from a team as a code owner April 23, 2026 10:36
@github-actions
Copy link
Copy Markdown
Contributor

Hi there 👋 Thanks for your contribution!

The OpenMetadata team will review the PR shortly! Once it has been labeled as safe to test, the CI workflows
will start executing and we'll be able to make sure everything is working as expected.

Let us know if you need any help!

@varun-lakhyani varun-lakhyani changed the title sap-sf sap-success-factors Apr 23, 2026
@varun-lakhyani varun-lakhyani added the safe to test Add this label to run secure Github workflows on PRs label Apr 23, 2026
"$ref": "../connectionBasicType.json#/definitions/supportsMetadataExtraction"
}
},
"required": ["baseUrl", "companyId"],
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Edge Case: Username not required — BasicAuth/OAuth2 both need it

The connection schema only requires baseUrl and companyId, but the username field is described as necessary for both BasicAuth ("used as the credential username") and OAuth2 ("used as the SAML NameID"). Without username in the required array, a user can save a connection config that will always fail at runtime.

JSON Schema draft-07 doesn't support conditional required natively in a clean way, but since username is needed for both auth types, it should simply be added to required. For auth-type-specific fields (password for BasicAuth, clientId/privateKey/tokenUrl for OAuth2), you could either add them all as optional and validate at the connector level (which is the pattern most OM connectors use), or use if/then blocks.

Suggested fix:

Change line 119 from:
  "required": ["baseUrl", "companyId"],
to:
  "required": ["baseUrl", "companyId", "username"],

Was this helpful? React with 👍 / 👎 | Reply gitar fix to apply this suggestion

},
"required": ["baseUrl", "companyId"],
"additionalProperties": false
} No newline at end of file
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Quality: Missing newline at end of JSON files

Both sapSuccessFactorsConnection.json and sapsuccessfactors.json are missing a trailing newline. This is flagged by most linters and causes noisy diffs when content is appended later.

Was this helpful? React with 👍 / 👎 | Reply gitar fix to apply this suggestion

@gitar-bot
Copy link
Copy Markdown

gitar-bot Bot commented Apr 23, 2026

Code Review ⚠️ Changes requested 0 resolved / 2 findings

Adds sap-success-factors connection schema, but the username field is missing a required designation. Additionally, several JSON files are missing a newline at the end of the file.

⚠️ Edge Case: Username not required — BasicAuth/OAuth2 both need it

📄 openmetadata-spec/src/main/resources/json/schema/entity/services/connections/database/sapSuccessFactorsConnection.json:119

The connection schema only requires baseUrl and companyId, but the username field is described as necessary for both BasicAuth ("used as the credential username") and OAuth2 ("used as the SAML NameID"). Without username in the required array, a user can save a connection config that will always fail at runtime.

JSON Schema draft-07 doesn't support conditional required natively in a clean way, but since username is needed for both auth types, it should simply be added to required. For auth-type-specific fields (password for BasicAuth, clientId/privateKey/tokenUrl for OAuth2), you could either add them all as optional and validate at the connector level (which is the pattern most OM connectors use), or use if/then blocks.

Suggested fix
Change line 119 from:
  "required": ["baseUrl", "companyId"],
to:
  "required": ["baseUrl", "companyId", "username"],
💡 Quality: Missing newline at end of JSON files

📄 openmetadata-spec/src/main/resources/json/schema/entity/services/connections/database/sapSuccessFactorsConnection.json:121 📄 openmetadata-service/src/main/resources/json/data/testConnections/database/sapsuccessfactors.json:21

Both sapSuccessFactorsConnection.json and sapsuccessfactors.json are missing a trailing newline. This is flagged by most linters and causes noisy diffs when content is appended later.

🤖 Prompt for agents
Code Review: Adds sap-success-factors connection schema, but the username field is missing a required designation. Additionally, several JSON files are missing a newline at the end of the file.

1. ⚠️ Edge Case: Username not required — BasicAuth/OAuth2 both need it
   Files: openmetadata-spec/src/main/resources/json/schema/entity/services/connections/database/sapSuccessFactorsConnection.json:119

   The connection schema only requires `baseUrl` and `companyId`, but the `username` field is described as necessary for both BasicAuth ("used as the credential username") and OAuth2 ("used as the SAML NameID"). Without `username` in the `required` array, a user can save a connection config that will always fail at runtime.
   
   JSON Schema draft-07 doesn't support conditional `required` natively in a clean way, but since `username` is needed for *both* auth types, it should simply be added to `required`. For auth-type-specific fields (`password` for BasicAuth, `clientId`/`privateKey`/`tokenUrl` for OAuth2), you could either add them all as optional and validate at the connector level (which is the pattern most OM connectors use), or use `if/then` blocks.

   Suggested fix:
   Change line 119 from:
     "required": ["baseUrl", "companyId"],
   to:
     "required": ["baseUrl", "companyId", "username"],

2. 💡 Quality: Missing newline at end of JSON files
   Files: openmetadata-spec/src/main/resources/json/schema/entity/services/connections/database/sapSuccessFactorsConnection.json:121, openmetadata-service/src/main/resources/json/data/testConnections/database/sapsuccessfactors.json:21

   Both `sapSuccessFactorsConnection.json` and `sapsuccessfactors.json` are missing a trailing newline. This is flagged by most linters and causes noisy diffs when content is appended later.

Options

Display: compact → Showing less information.

Comment with these commands to change:

Compact
gitar display:verbose         

Was this helpful? React with 👍 / 👎 | Gitar

@github-actions
Copy link
Copy Markdown
Contributor

Jest test Coverage

UI tests summary

Lines Statements Branches Functions
Coverage: 61%
61.98% (60308/97295) 42% (31620/75280) 44.99% (9492/21094)

@sonarqubecloud
Copy link
Copy Markdown

@sonarqubecloud
Copy link
Copy Markdown

@github-actions
Copy link
Copy Markdown
Contributor

🟡 Playwright Results — all passed (12 flaky)

✅ 3699 passed · ❌ 0 failed · 🟡 12 flaky · ⏭️ 89 skipped

Shard Passed Failed Flaky Skipped
✅ Shard 1 481 0 0 4
🟡 Shard 2 655 0 1 7
🟡 Shard 3 663 0 3 1
🟡 Shard 4 645 0 3 27
✅ Shard 5 611 0 0 42
🟡 Shard 6 644 0 5 8
🟡 12 flaky test(s) (passed on retry)
  • Features/BulkEditEntity.spec.ts › Glossary (shard 2, 1 retry)
  • Features/RTL.spec.ts › Verify Following widget functionality (shard 3, 1 retry)
  • Flow/PersonaDeletionUserProfile.spec.ts › User profile loads correctly before and after persona deletion (shard 3, 1 retry)
  • Flow/PersonaFlow.spec.ts › Set default persona for team should work properly (shard 3, 1 retry)
  • Pages/Customproperties-part2.spec.ts › entityReferenceList shows item count, scrollable list, no expand toggle (shard 4, 1 retry)
  • Pages/DataContractsSemanticRules.spec.ts › Validate Description Rule Is_Not_Set (shard 4, 1 retry)
  • Pages/Entity.spec.ts › Tier Add, Update and Remove (shard 4, 1 retry)
  • Pages/Lineage/DataAssetLineage.spec.ts › Column lineage for container -> dashboardDataModel (shard 6, 1 retry)
  • Pages/Lineage/DataAssetLineage.spec.ts › Column lineage for dashboardDataModel -> mlModel (shard 6, 1 retry)
  • Pages/Lineage/LineageFilters.spec.ts › Verify lineage schema filter selection (shard 6, 1 retry)
  • Pages/Lineage/LineageRightPanel.spec.ts › Verify custom properties tab IS visible for supported type: searchIndex (shard 6, 1 retry)
  • Pages/Users.spec.ts › Permissions for table details page for Data Consumer (shard 6, 1 retry)

📦 Download artifacts

How to debug locally
# Download playwright-test-results-<shard> artifact and unzip
npx playwright show-trace path/to/trace.zip    # view trace

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

safe to test Add this label to run secure Github workflows on PRs

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant