Skip to content

Zoom rules with YAML#1078

Draft
aperez-worklytics wants to merge 18 commits intorc-v0.5.18from
zoom_rules
Draft

Zoom rules with YAML#1078
aperez-worklytics wants to merge 18 commits intorc-v0.5.18from
zoom_rules

Conversation

@aperez-worklytics
Copy link
Contributor

@aperez-worklytics aperez-worklytics commented Jan 2, 2026

Using Zoom rules from generated ones. Some endpoints have been removed as they are not used.

As draft, until discuss field revision.

Fixes

paste links to issues/tasks in project management

Features

Zoom: use YAML rules

Logistics

paste links to issues/tasks in project management

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? yes; zoom rules updated
    • breaking changes? if in module/example that is NOT marked alpha, requires major version
      change no

dependabot bot and others added 18 commits October 28, 2025 18:17
Bumps [org.apache.httpcomponents.client5:httpclient5](https://github.com/apache/httpcomponents-client) from 5.4.1 to 5.4.3.
- [Changelog](https://github.com/apache/httpcomponents-client/blob/rel/v5.4.3/RELEASE_NOTES.txt)
- [Commits](apache/httpcomponents-client@rel/v5.4.1...rel/v5.4.3)

---
updated-dependencies:
- dependency-name: org.apache.httpcomponents.client5:httpclient5
  dependency-version: 5.4.3
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
…y-core/org.apache.httpcomponents.client5-httpclient5-5.4.3

bump apache httpclient5 from 5.4.1 to 5.4.3
* Update rules

* Support example with POST
* apache commons codec to 1.19.0

* more dep updates
* add logic to keep lambdas warm

* fix style

* init public keys in mem for webhook collectors on start-up
* aws replace tool

* add documentation
* improve webhook collector mode configuration

* support webhook output prefix

* fix style

* fix path stuff

* fix missed rename

* fix various test issues
* deal with empty header case more correctly; that's quite clearly a bug

* add test of empty CC case
# Conflicts:
#	infra/examples-dev/aws/google-workspace.tf
#	infra/examples-dev/aws/main.tf
#	infra/examples-dev/aws/msft-365.tf
#	infra/examples-dev/gcp/google-workspace.tf
#	infra/examples-dev/gcp/main.tf
#	infra/examples-dev/gcp/msft-365.tf
#	infra/modules/aws-host/variables.tf
#	infra/modules/worklytics-connector-specs/main.tf
#	java/core/src/main/java/co/worklytics/psoxy/gateway/impl/HealthCheckRequestHandler.java
#	java/pom.xml
#	tools/init-tfvars.sh
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

This PR migrates Zoom rules from Java-based definitions to YAML configuration, adding response schemas for better API contract enforcement while removing endpoints and fields that are not used.

Key Changes:

  • Replaced hardcoded Java Zoom rule definitions with YAML-based configuration
  • Removed /users/{userId}/settings and /report/meetings/{meetingId} endpoints
  • Added response schemas and allowed query parameters to endpoint definitions

Reviewed changes

Copilot reviewed 14 out of 14 changed files in this pull request and generated 4 comments.

Show a summary per file
File Description
java/core/src/main/java/co/worklytics/psoxy/rules/zoom/PrebuiltSanitizerRules.java Replaced hardcoded endpoint rules with YAML file loading
docs/sources/zoom/zoom.yaml Added comprehensive YAML rule definitions with response schemas and query parameter controls
java/core/src/test/java/co/worklytics/psoxy/rules/zoom/ZoomRulesTests.java Removed tests for deprecated endpoints and disabled YAML length validation test
docs/sources/zoom/example-api-responses/sanitized/*.json Updated sanitized examples to reflect removed fields (pmi, phone_number, etc.)
docs/sources/zoom/example-api-responses/original/*.json Removed original examples for deprecated endpoints
CHANGELOG.md Documented Zoom rules update for v0.5.16

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

type: "string"
uuid:
type: "string"
- pathTemplate: "/v2/past_meetings/{occurrenceUuid}/instances"
Copy link

Copilot AI Jan 2, 2026

Choose a reason for hiding this comment

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

The path parameter is named {occurrenceUuid} in this endpoint but other endpoints use {meetingId} or {userId}. The Java test at line 36 still references /v2/past_meetings/MEETING_ID/instances. This inconsistency between the YAML parameter name and test URL suggests the parameter should be {meetingId} for consistency, unless the API specifically requires UUID format here.

Copilot uses AI. Check for mistakes.
type: "integer"
total_records:
type: "integer"
- pathTemplate: "/v2/past_meetings/{occurrenceUuid}/participants"
Copy link

Copilot AI Jan 2, 2026

Choose a reason for hiding this comment

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

Similar to the instances endpoint, this uses {occurrenceUuid} while the Java test at line 47-49 uses MEETING_ID. The parameter naming should be consistent across related endpoints unless there's a specific API requirement for UUID format.

Copilot uses AI. Check for mistakes.
$ref: "#/definitions/MeetingParticipant"
total_records:
type: "integer"
- pathTemplate: "/v2/report/meetings/{occurrenceUuid}/participants"
Copy link

Copilot AI Jan 2, 2026

Choose a reason for hiding this comment

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

This endpoint also uses {occurrenceUuid} but the corresponding Java tests at lines 53-55 reference /v2/report/meetings/{meetingId}/participants. The parameter should consistently be named {meetingId} across all similar endpoints.

Suggested change
- pathTemplate: "/v2/report/meetings/{occurrenceUuid}/participants"
- pathTemplate: "/v2/report/meetings/{meetingId}/participants"

Copilot uses AI. Check for mistakes.
Comment on lines +28 to +33
@Test
@Override
@Disabled
public void yamlLength() {
// Do nothing, as response schema is bigger than we allow for advanced parameters
}
Copy link

Copilot AI Jan 2, 2026

Choose a reason for hiding this comment

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

The YAML length validation test has been disabled. If the response schema exceeds allowed limits for advanced parameters, this should be addressed rather than disabling the validation. Consider either: 1) splitting the schema into smaller parts, 2) increasing the limit if justified, or 3) documenting why this specific case requires an exception.

Copilot uses AI. Check for mistakes.
"id": "jjd93a2337",
"name": "Joe Surname",
"user_email": "joe@example.com",
"pmi": 111111111
Copy link
Contributor Author

Choose a reason for hiding this comment

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

These pmi are not present in the responde model from API and not used in our source model. See https://developers.zoom.us/docs/api/meetings/#tag/meetings/get/past_meetings/{meetingId}/participants

Copy link
Member

Choose a reason for hiding this comment

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

ok, yeah - either this was present in the example json at some point, or we put it in there just to be SURE would be redacted if ever appeared in some zoom versions.

but the responseSchema approach achieves that now.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Not used. Files, test and endpoint dropped.

"total_records":4,
"meetings":[
{
"uuid":"mlghmfghlBBB",
Copy link
Contributor Author

Choose a reason for hiding this comment

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

"email":"t~8ZuLJANBU0hIFqmaE8RjwHZqRb4MezRyGZ6rLZUkKSg@example.com",
"type":2,
"pmi":"p~LKW3WIP3bZzEQFelvQBi0lpLDZtk-1qJbWe3rHfhYhdfeki-8voee3S0wopon6Y3",
"phone_number":"t~gYkykBgGMDuc3PCagpgnLxf71Bde2_7QuMV41oIRypc",
Copy link
Contributor Author

Choose a reason for hiding this comment

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

Not in the model

@eschultink
Copy link
Member

history might benefit from rebasing this against latest rc-

"id": "jjd93a2337",
"name": "Joe Surname",
"user_email": "joe@example.com",
"pmi": 111111111
Copy link
Member

Choose a reason for hiding this comment

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

ok, yeah - either this was present in the example json at some point, or we put it in there just to be SURE would be redacted if ever appeared in some zoom versions.

but the responseSchema approach achieves that now.

"page_number":1,
"page_size":30,
"total_records":20,
"from":"2020-07-14",
Copy link
Member

Choose a reason for hiding this comment

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

i guess we infer this from the API request? but that said I don't see a point to dropping it. Having it in there gives us flexibility to re-parse API responses without having the original request context.

there's value for that on both our side, as well as if customers use a side-output to capture all API responses.

@Test
@Override
@Disabled
public void yamlLength() {
Copy link
Member

Choose a reason for hiding this comment

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

🤔 we do need to be certain that, in gzip'd form, it fits within an advanced AWS SSM parameter.

Base automatically changed from rc-v0.5.16 to main January 29, 2026 18:27
@eschultink eschultink changed the base branch from main to rc-v0.5.17 January 29, 2026 20:28
Base automatically changed from rc-v0.5.17 to main February 10, 2026 20:53
@eschultink eschultink changed the base branch from main to rc-v0.5.18 February 10, 2026 21:09
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.

4 participants