Skip to content

OneDrive connector - #1356

Merged
eschultink merged 6 commits into
rc-v0.6.9from
onedrive_connector
Jul 30, 2026
Merged

OneDrive connector#1356
eschultink merged 6 commits into
rc-v0.6.9from
onedrive_connector

Conversation

@aperez-worklytics

@aperez-worklytics aperez-worklytics commented Jul 24, 2026

Copy link
Copy Markdown
Contributor

Features

Change implications

  • dependencies added/changed? no
  • something important to note in future release notes?
    • NOTE in CHANGELOG.md anything that will show up in terraform plan/apply that isn't
      obviously a no-op? no
    • breaking changes? if in module/example that is NOT marked alpha, requires major version
      change

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Pull request overview

Adds a new Microsoft OneDrive connector to the Microsoft 365 connector suite, including sanitizer rules, example API responses, Terraform connector spec wiring, and end-user documentation.

Changes:

  • Added OneDrive sanitizer rule sets (standard + “no app ids”) with example API responses and Java rule tests.
  • Registered the new connector in Java prebuilt rules and Terraform connector specs (including example API call generation inputs).
  • Updated docs navigation and Microsoft 365 docs to include OneDrive and guidance for populating example IDs.

Reviewed changes

Copilot reviewed 35 out of 39 changed files in this pull request and generated 6 comments.

Show a summary per file
File Description
java/core/src/test/java/co/worklytics/psoxy/rules/msft/OneDriveTests.java Adds Java rules tests for the OneDrive ruleset and example invocations.
java/core/src/test/java/co/worklytics/psoxy/rules/msft/OneDrive_NoAppIds_Tests.java Adds Java rules tests for the OneDrive “no app ids” variant and example invocations.
java/core/src/main/java/co/worklytics/psoxy/rules/msft/PrebuiltSanitizerRules.java Registers OneDrive rulesets and adds them to the default MSFT rules map.
infra/modules/worklytics-connectors-msft-365/variables.tf Documents additional supported MSFT 365 connector settings keys (incl. OneDrive example IDs).
infra/modules/worklytics-connectors-google-workspace/main.tf Terraform formatting/alignment tweak in locals.
infra/modules/worklytics-connector-specs/variables.tf Documents additional supported MSFT 365 connector settings keys (incl. OneDrive example IDs).
infra/modules/worklytics-connector-specs/msft-365.tf Adds connector spec entry for msft-onedrive (metadata, roles, example API calls).
infra/modules/worklytics-connector-specs/main.tf Adds locals for OneDrive example IDs used in example API call generation.
infra/modules/google-workspace-dwd-connection/main.tf Terraform formatting/alignment tweak in locals.
infra/modules/gcp-proxy-bulk/variables.tf Terraform formatting tweak for variable type line.
infra/modules/gcp-host/main.tf Terraform formatting/alignment tweak for module args.
infra/modules/entra-grant-all-users/main.tf Updates Entra admin-center deep link used in instructions.
infra/examples-dev/gcp/msft-365-variables.tf Documents additional supported MSFT 365 connector settings keys (incl. OneDrive example IDs).
infra/examples-dev/aws/msft-365-variables.tf Documents additional supported MSFT 365 connector settings keys (incl. OneDrive example IDs).
docs/SUMMARY.md Adds OneDrive page into the docs table of contents.
docs/sources/README.md Adds msft-onedrive to the connector list.
docs/sources/microsoft-365/README.md Adds guidance for populating Terraform-generated example API calls with real IDs.
docs/sources/microsoft-365/msft-onedrive/README.md New connector documentation page for OneDrive (endpoints, scopes, examples, rules links).
docs/sources/microsoft-365/msft-onedrive/msft-onedrive.yaml New OneDrive ruleset YAML (standard mode).
docs/sources/microsoft-365/msft-onedrive/msft-onedrive_no-app-ids.yaml New OneDrive ruleset YAML (“no app ids” mode).
docs/sources/microsoft-365/msft-onedrive/example-api-responses/original/users.json Adds original example response for /users.
docs/sources/microsoft-365/msft-onedrive/example-api-responses/original/groups.json Adds original example response for /groups.
docs/sources/microsoft-365/msft-onedrive/example-api-responses/original/list_drives.json Adds original example response for /users/{id}/drives and /groups/{id}/drives.
docs/sources/microsoft-365/msft-onedrive/example-api-responses/original/get_drive_delta.json Adds original example response for /drives/{id}/root/delta.
docs/sources/microsoft-365/msft-onedrive/example-api-responses/original/list_itemActivity.json Adds original example response for /drives/{id}/items/{id}/activities.
docs/sources/microsoft-365/msft-onedrive/example-api-responses/original/list_driveActivity.json Adds original example response for /drives/{id}/activities.
docs/sources/microsoft-365/msft-onedrive/example-api-responses/sanitized/users.json Adds sanitized example response for /users (standard rules).
docs/sources/microsoft-365/msft-onedrive/example-api-responses/sanitized/groups.json Adds sanitized example response for /groups (standard rules).
docs/sources/microsoft-365/msft-onedrive/example-api-responses/sanitized/list_drives.json Adds sanitized example response for drive listing (standard rules).
docs/sources/microsoft-365/msft-onedrive/example-api-responses/sanitized/get_drive_delta.json Adds sanitized example response for delta feed (standard rules).
docs/sources/microsoft-365/msft-onedrive/example-api-responses/sanitized/list_itemActivity.json Adds sanitized example response for per-item activities (standard rules).
docs/sources/microsoft-365/msft-onedrive/example-api-responses/sanitized/list_driveActivity.json Adds sanitized example response for drive activities (standard rules).
docs/sources/microsoft-365/msft-onedrive/example-api-responses/sanitized_no-app-ids/users.json Adds sanitized example response for /users (no-app-ids rules).
docs/sources/microsoft-365/msft-onedrive/example-api-responses/sanitized_no-app-ids/groups.json Adds sanitized example response for /groups (no-app-ids rules).
docs/sources/microsoft-365/msft-onedrive/example-api-responses/sanitized_no-app-ids/list_drives.json Adds sanitized example response for drive listing (no-app-ids rules).
docs/sources/microsoft-365/msft-onedrive/example-api-responses/sanitized_no-app-ids/get_drive_delta.json Adds sanitized example response for delta feed (no-app-ids rules).
docs/sources/microsoft-365/msft-onedrive/example-api-responses/sanitized_no-app-ids/list_itemActivity.json Adds sanitized example response for per-item activities (no-app-ids rules).
docs/sources/microsoft-365/msft-onedrive/example-api-responses/sanitized_no-app-ids/list_driveActivity.json Adds sanitized example response for drive activities (no-app-ids rules).
CHANGELOG.md Adds an unreleased entry announcing the new msft-onedrive connector.
Comments suppressed due to low confidence (10)

java/core/src/test/java/co/worklytics/psoxy/rules/msft/OneDriveTests.java:44

  • The example URLs use $orderBy, but Microsoft Graph uses $orderby (lowercase). Since allowed query params are checked case-sensitively, requests using $orderby would be blocked unless rules include it. Consider using $orderby in these examples (and allow it in the rules).
    java/core/src/test/java/co/worklytics/psoxy/rules/msft/OneDriveTests.java:47
  • This example URL ends the query string with a trailing &, which introduces an empty query parameter key. The sanitizer's allowed-query-params check is strict and may reject this URL even though token is allowed.
    java/core/src/test/java/co/worklytics/psoxy/rules/msft/OneDrive_NoAppIds_Tests.java:46
  • These example URLs use $orderBy, but Microsoft Graph uses $orderby (lowercase). Because the sanitizer checks allowed query params case-sensitively, allowing only $orderBy would block $orderby requests.
    java/core/src/test/java/co/worklytics/psoxy/rules/msft/OneDrive_NoAppIds_Tests.java:49
  • This example URL ends the query string with a trailing &, which introduces an empty query parameter key and may be rejected by strict query-param allowlisting.
    docs/sources/microsoft-365/msft-onedrive/msft-onedrive.yaml:101
  • Allowed query params are checked case-sensitively; consider allowlisting $orderby (lowercase) in addition to $orderBy to match Microsoft Graph clients.
    allowedQueryParams:
      - "$select"
      - "$skiptoken"
      - "$top"
      - "$orderBy"

docs/sources/microsoft-365/msft-onedrive/msft-onedrive.yaml:126

  • Allowed query params are checked case-sensitively; consider allowlisting $orderby (lowercase) in addition to $orderBy to avoid blocking valid Microsoft Graph requests.
    allowedQueryParams:
      - "$top"
      - "$select"
      - "$skiptoken"
      - "$orderBy"

docs/sources/microsoft-365/msft-onedrive/msft-onedrive.yaml:157

  • Allowed query params are checked case-sensitively; consider allowlisting $orderby (lowercase) alongside $orderBy for compatibility with common Microsoft Graph client usage.
    allowedQueryParams:
      - "$select"
      - "$skiptoken"
      - "$top"
      - "$orderBy"

docs/sources/microsoft-365/msft-onedrive/msft-onedrive_no-app-ids.yaml:104

  • Allowed query params are checked case-sensitively; consider allowlisting $orderby (lowercase) in addition to $orderBy to match Microsoft Graph clients.
    allowedQueryParams:
      - "$select"
      - "$skiptoken"
      - "$top"
      - "$orderBy"

docs/sources/microsoft-365/msft-onedrive/msft-onedrive_no-app-ids.yaml:130

  • Allowed query params are checked case-sensitively; consider allowlisting $orderby (lowercase) alongside $orderBy for compatibility with common Microsoft Graph usage.
    allowedQueryParams:
      - "$top"
      - "$select"
      - "$skiptoken"
      - "$orderBy"

docs/sources/microsoft-365/msft-onedrive/msft-onedrive_no-app-ids.yaml:162

  • Allowed query params are checked case-sensitively; consider allowlisting $orderby (lowercase) in addition to $orderBy for Microsoft Graph client compatibility.
    allowedQueryParams:
      - "$select"
      - "$skiptoken"
      - "$top"
      - "$orderBy"

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread java/core/src/test/java/co/worklytics/psoxy/rules/msft/OneDriveTests.java Outdated
Comment thread docs/sources/microsoft-365/msft-onedrive/msft-onedrive.yaml
Comment thread docs/sources/microsoft-365/README.md Outdated
Comment thread docs/sources/microsoft-365/msft-onedrive/README.md Outdated

@eschultink eschultink left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

i agree with the hardwraps in md; and casing in example urls (We should match MSFT docs)

@aperez-worklytics aperez-worklytics left a comment

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

Some improvements in docs and adding support for ignoring case when matching query parameters

Comment thread docs/sources/microsoft-365/msft-onedrive/msft-onedrive.yaml
.map(allowedParams -> allowedParams.containsAll(
queryParams.stream().map(Pair::getKey).collect(Collectors.toList())))
.map(allowedParams -> {
Set<String> allowedParamsLowerCase = allowedParams.stream()

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

Adding this change to support ignoring case when checking query parameters

@eschultink
eschultink merged commit acbb3e9 into rc-v0.6.9 Jul 30, 2026
120 checks passed
@eschultink
eschultink deleted the onedrive_connector branch July 30, 2026 04:48
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants