Skip to content

feat: refactor ddp publication registration into a PublicationRegistry#1785

Open
Julusian wants to merge 2 commits into
Sofie-Automation:mainfrom
SuperFlyTV:refactor/ddp-publication-registry
Open

feat: refactor ddp publication registration into a PublicationRegistry#1785
Julusian wants to merge 2 commits into
Sofie-Automation:mainfrom
SuperFlyTV:refactor/ddp-publication-registry

Conversation

@Julusian

@Julusian Julusian commented Jun 29, 2026

Copy link
Copy Markdown
Member

About the Contributor

This pull request is posted on behalf of Superfly

Type of Contribution

This is a: Code improvement

This is part of a series of PRs aiming to replace the meteor ddp server.

This builds upon #1783

New Behavior

This continues the pattern started in #1783, expanding it to cover the publications too

Testing

  • I have added one or more unit tests for this PR
  • I have updated the relevant unit tests
  • No unit test changes are needed for this PR

Affected areas

Time Frame

Other Information

Status

  • PR is ready to be reviewed.
  • The functionality has been tested by the author.
  • Relevant unit tests has been added / updated.
  • Relevant documentation (code comments, system documentation) has been added / updated.

@Julusian Julusian added the Contribution from SuperFly.tv Contributions sponsored by SuperFly.tv label Jun 29, 2026
@coderabbitai

coderabbitai Bot commented Jun 29, 2026

Copy link
Copy Markdown

Review Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: a4232a52-bfc7-4c99-99ff-fe05ea8b28f3

📥 Commits

Reviewing files that changed from the base of the PR and between 4c6a95f and b065834.

⛔ Files ignored due to path filters (1)
  • meteor/server/__tests__/__snapshots__/publicationRegistry.test.ts.snap is excluded by !**/*.snap
📒 Files selected for processing (40)
  • meteor/__mocks__/helpers/publications.ts
  • meteor/server/__tests__/publicationRegistry.test.ts
  • meteor/server/api/rest/api.ts
  • meteor/server/api/rest/v0/__tests__/rest.test.ts
  • meteor/server/api/rest/v0/index.ts
  • meteor/server/lib/customPublication/index.ts
  • meteor/server/lib/customPublication/publish.ts
  • meteor/server/main.ts
  • meteor/server/publicationRegistrations.ts
  • meteor/server/publicationRegistry.ts
  • meteor/server/publications/_publications.ts
  • meteor/server/publications/blueprintUpgradeStatus/publication.ts
  • meteor/server/publications/buckets.ts
  • meteor/server/publications/deviceTriggersPreview.ts
  • meteor/server/publications/externalEventSubscriptions.ts
  • meteor/server/publications/ingestStatus/publication.ts
  • meteor/server/publications/lib/lib.ts
  • meteor/server/publications/mountedTriggers.ts
  • meteor/server/publications/organization.ts
  • meteor/server/publications/packageManager/expectedPackages/publication.ts
  • meteor/server/publications/packageManager/packageContainers.ts
  • meteor/server/publications/packageManager/playoutContext.ts
  • meteor/server/publications/partInstancesUI/publication.ts
  • meteor/server/publications/partsUI/publication.ts
  • meteor/server/publications/peripheralDevice.ts
  • meteor/server/publications/peripheralDeviceForDevice.ts
  • meteor/server/publications/pieceContentStatusUI/bucket/publication.ts
  • meteor/server/publications/pieceContentStatusUI/rundown/publication.ts
  • meteor/server/publications/rundown.ts
  • meteor/server/publications/rundownPlaylist.ts
  • meteor/server/publications/segmentPartNotesUI/publication.ts
  • meteor/server/publications/showStyle.ts
  • meteor/server/publications/showStyleUI.ts
  • meteor/server/publications/studio.ts
  • meteor/server/publications/studioUI.ts
  • meteor/server/publications/system.ts
  • meteor/server/publications/timeline.ts
  • meteor/server/publications/translationsBundles.ts
  • meteor/server/publications/triggeredActionsUI.ts
  • meteor/server/security/check.ts
💤 Files with no reviewable changes (1)
  • meteor/server/publications/_publications.ts
✅ Files skipped from review due to trivial changes (1)
  • meteor/server/security/check.ts
🚧 Files skipped from review as they are similar to previous changes (38)
  • meteor/server/publicationRegistrations.ts
  • meteor/server/tests/publicationRegistry.test.ts
  • meteor/mocks/helpers/publications.ts
  • meteor/server/publications/deviceTriggersPreview.ts
  • meteor/server/publications/organization.ts
  • meteor/server/main.ts
  • meteor/server/publications/translationsBundles.ts
  • meteor/server/publications/buckets.ts
  • meteor/server/publications/blueprintUpgradeStatus/publication.ts
  • meteor/server/publications/rundownPlaylist.ts
  • meteor/server/publications/pieceContentStatusUI/bucket/publication.ts
  • meteor/server/lib/customPublication/index.ts
  • meteor/server/publications/studioUI.ts
  • meteor/server/api/rest/v0/tests/rest.test.ts
  • meteor/server/publications/peripheralDeviceForDevice.ts
  • meteor/server/publications/externalEventSubscriptions.ts
  • meteor/server/publications/partInstancesUI/publication.ts
  • meteor/server/publications/system.ts
  • meteor/server/publications/triggeredActionsUI.ts
  • meteor/server/api/rest/api.ts
  • meteor/server/lib/customPublication/publish.ts
  • meteor/server/publications/showStyle.ts
  • meteor/server/publications/showStyleUI.ts
  • meteor/server/publications/packageManager/expectedPackages/publication.ts
  • meteor/server/publications/mountedTriggers.ts
  • meteor/server/publications/peripheralDevice.ts
  • meteor/server/publications/timeline.ts
  • meteor/server/publications/packageManager/playoutContext.ts
  • meteor/server/publications/segmentPartNotesUI/publication.ts
  • meteor/server/publications/lib/lib.ts
  • meteor/server/api/rest/v0/index.ts
  • meteor/server/publicationRegistry.ts
  • meteor/server/publications/ingestStatus/publication.ts
  • meteor/server/publications/pieceContentStatusUI/rundown/publication.ts
  • meteor/server/publications/packageManager/packageContainers.ts
  • meteor/server/publications/studio.ts
  • meteor/server/publications/rundown.ts
  • meteor/server/publications/partsUI/publication.ts

Walkthrough

Replaces import-time Meteor registration with explicit method and publication registries, exports server API classes with typed async signatures, moves publications behind registry entry points, and updates startup, REST routing, verification, and tests to use the new wiring.

Changes

Registry-based Meteor method and publication registration

Layer / File(s) Summary
Registry and context contracts
meteor/server/methodRegistry.ts, meteor/server/methods.ts, meteor/server/publicationRegistry.ts, meteor/server/publications/lib/lib.ts, meteor/server/lib/customPublication/publish.ts, meteor/server/lib/customPublication/index.ts, meteor/server/security/check.ts
Defines the new method and publication registry types, wrapped execution helper, publication callback context, and updated custom publication/security contracts used by the registry flow.
Server API exports and typed methods
meteor/server/api/*
Exports the server API classes, removes in-file Meteor registration calls, and adds explicit Promise return types and related signature updates across the API modules.
Publication modules on registries
meteor/server/publications/*
Converts publication modules from module-load side effects to exported registerXxxPublications(registry) functions using registry.publish and registry.customPublish, with explicit context parameters.
Startup, routing, and verification wiring
meteor/server/methodRegistrations.ts, meteor/server/publicationRegistrations.ts, meteor/server/main.ts, meteor/server/security/securityVerify.ts, meteor/server/api/rest/api.ts, meteor/server/api/rest/v0/index.ts
Centralizes registration maps, applies both registries in startup, updates security verification to use MethodRegistry, and refactors REST routing to accept injected registries.
Registry helpers and tests
meteor/__mocks__/helpers/*, meteor/server/__tests__/*, meteor/server/api/rest/v0/__tests__/rest.test.ts, meteor/server/systemStatus/__tests__/*, meteor/server/migration/__tests__/*
Adds test helpers and registry-focused unit tests, and updates existing suites to use explicit registration helpers and registry-derived signatures.

Estimated code review effort

🎯 5 (Critical) | ⏱️ ~120 minutes

Possibly related PRs

Suggested reviewers

  • nytamin
  • justandras
🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 17.39% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (4 passed)
Check name Status Explanation
Title check ✅ Passed The title accurately summarizes the main change: refactoring DDP publication registration into a PublicationRegistry.
Description check ✅ Passed The description is clearly related and matches the refactor to registry-based publication registration.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Actionable comments posted: 12

🧹 Nitpick comments (1)
meteor/server/api/client.ts (1)

442-449: 📐 Maintainability & Code Quality | 🔵 Trivial | ⚡ Quick win

Keep this API method return type explicit.

This exported registry surface still suppresses explicit boundary typing while neighboring API methods declare their Promise<...> return types.

Proposed cleanup
-	// eslint-disable-next-line `@typescript-eslint/explicit-module-boundary-types`
 	async callPeripheralDeviceFunction(
 		context: string,
 		deviceId: PeripheralDeviceId,
 		timeoutTime: number | undefined,
 		functionName: string,
 		...args: any[]
-	) {
+	): Promise<any> {
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@meteor/server/api/client.ts` around lines 442 - 449, The exported API method
callPeripheralDeviceFunction still relies on explicit-boundary suppression
instead of declaring its return type like nearby registry methods. Remove the
boundary-typing suppression and add an explicit Promise-based return type on
callPeripheralDeviceFunction that matches its resolved value, keeping the
registry surface consistently typed with the neighboring API methods.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@meteor/server/__tests__/methodRegistry.test.ts`:
- Around line 26-28: The drift guard in the MethodRegistry test is relying on a
hard-coded name prefix to skip debug methods. Update the loop in
methodRegistry.test.ts to use MethodRegistry.isDebugMethod(name) instead of
startsWith('debug'), so the test follows the registry’s source-of-truth debug
detection and stays valid if debug method names change.

In `@meteor/server/api/rest/v0/index.ts`:
- Around line 78-79: The REST route builder is using raw publication signatures
from PublicationRegistry, which still include the synthetic context parameter
and can shift arguments for legacy routes. Update the route-generation logic in
the REST index code that reads methodRegistry.getSignatures() and
publicationRegistry.getSignatures() so publication signatures are
normalized/stripped before route construction, and ensure the customPublish
wrapper shape does not leak into REST parameter expectations. Adjust the route
handling in the related route-building block as well so publications receive
only their real user args in the correct order.
- Around line 23-35: The legacy REST path is now picking up custom publications
that rely on observer cleanup, but legacyRestPublicationContext provides a no-op
onStop, so those callbacks can leak resources while returning empty results.
Update the REST publication lookup in index.ts to exclude custom publications
(or otherwise filter registry entries so only cursor-returning publications are
used) before invoking them with legacyRestPublicationContext, and keep the no-op
context limited to safe legacy cursor-only handlers.

In `@meteor/server/methodRegistry.ts`:
- Around line 119-135: Prevent method registration after applyToMeteor() has
already snapshotted the registry into Meteor.methods(), since later changes to
MethodRegistry become invisible to Meteor. Add a guard in MethodRegistry.add
(and/or the public registration paths registerApi(), registerMethod(), and
registerDebugMethods()) that throws once applyToMeteor() has been called, so no
new entries can be added to this.methods after the snapshot. Use the existing
MethodRegistry state and identifiers like add and applyToMeteor() to enforce the
freeze consistently across all registration entry points.

In `@meteor/server/publicationRegistry.ts`:
- Around line 79-80: The publication registry is storing and exposing
wrapper/internal parameters instead of the real public API signature. Update
PublicationRegistry.register and customPublish() so extractFunctionSignature is
taken from the typed callback/public-facing function signature, not the wrapper
that includes context, and strip registry-only parameters like context before
saving in this.publications. Ensure introspection/REST returns the original
arguments such as deviceId and token rather than context, ...args.

In `@meteor/server/publications/deviceTriggersPreview.ts`:
- Around line 20-31: The custom publication registration in
registerDeviceTriggersPreviewPublications is losing the original argument
signature because customPublish wraps the callback as context plus rest args,
which breaks PublicationRegistry signature extraction for REST routing. Update
customPublish so it preserves and stores the original callback’s parameter list
from the publication handler passed to
registerDeviceTriggersPreviewPublications, rather than the wrapper signature, so
publicationRegistry.getSignatures() reflects the real route params.

In `@meteor/server/publications/mountedTriggers.ts`:
- Around line 21-24: The mounted-triggers publications are being wrapped in a
way that causes signature introspection to see only the generic async wrapper
instead of the real parameters. Update the registration in mountedTriggers.ts so
the wrapper passed to registry.customPublish preserves the original callback
signature for PeripheralDevicePubSub.mountedTriggersForDevice and the related
publication, keeping parameter names like deviceId, deviceIds, and token visible
to getSignatures() and the REST route/doc generation.

In `@meteor/server/publications/partsUI/publication.ts`:
- Around line 190-218: The `registerPartsUIPublications` callback passed to
`PublicationRegistry.customPublish` is being wrapped in an `async (context,
...args)` handler, which hides the original `playlistId` parameter from
signature inspection. Update `customPublish`/`publishUnsafe` so the original
user callback or its extracted signature is preserved separately for
`getSignatures()`, and keep the `MeteorPubSub.uiParts` handler signature intact
for route generation. Ensure the fix is applied in the
`PublicationRegistry.customPublish` flow rather than changing the
`registerPartsUIPublications` logic itself.

In `@meteor/server/publications/peripheralDevice.ts`:
- Around line 25-80: Validate the subscriber-provided identifiers and authorize
before exposing sensitive fields in peripheralDevice publications. In the
anonymous publication handler and peripheralDevicesAndSubDevices, add runtime
validation for every supplied PeripheralDeviceId/StudioId before using them in
selectors or $in queries, and avoid widening access based solely on token
presence. In peripheralDevice.ts, use the existing access-check helper pattern
from checkAccessAndGetPeripheralDevice or equivalent to confirm the token is
valid before removing secretSettings from peripheralDeviceProjection, and ensure
PeripheralDevicePubSub.peripheralDeviceCommands also validates its deviceId
input before querying.

In `@meteor/server/publications/rundown.ts`:
- Around line 238-249: The Mongo selector in the rundown publications is using
client-supplied args directly, so validate those inputs before assigning them
into query filters. Add runtime check() calls for playlistActivationId and
thisRundownId in the relevant publication handlers in rundown.ts, then only use
the validated scalar values when building the selector in the publication logic
(including the related sections in the same file).

In `@meteor/server/publications/rundownPlaylist.ts`:
- Around line 11-52: The publication callbacks in
registerRundownPlaylistPublications are exposing the internal _context parameter
in the generated signatures, which shifts the legacy REST route shape. Remove
_context from the registry.publish callback signatures for
CorelibPubSub.rundownPlaylists and MeteorPubSub.rundownPlaylistForStudio, and
keep the remaining arguments in the same order so extractFunctionSignature()
produces the expected route segments.

In `@meteor/server/publications/timeline.ts`:
- Around line 40-92: The legacy publication routes in
registerTimelinePublications are exposing transport-only parameters because the
wrapper callback signature is being captured instead of the user-facing DDP
args. Update PublicationRegistry.getSignatures() and the handling used by
createLegacyApiRouter() so publish()/customPublish() entries store only the
actual callback arguments, excluding context and pub, and ensure the timeline
publication registrations in registerTimelinePublications still work with the
corrected signature shape.

---

Nitpick comments:
In `@meteor/server/api/client.ts`:
- Around line 442-449: The exported API method callPeripheralDeviceFunction
still relies on explicit-boundary suppression instead of declaring its return
type like nearby registry methods. Remove the boundary-typing suppression and
add an explicit Promise-based return type on callPeripheralDeviceFunction that
matches its resolved value, keeping the registry surface consistently typed with
the neighboring API methods.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: 1c9e766f-c71f-41e9-911b-492aeeff4847

📥 Commits

Reviewing files that changed from the base of the PR and between b6ffe3e and 7bc803c.

⛔ Files ignored due to path filters (2)
  • meteor/server/__tests__/__snapshots__/methodRegistry.test.ts.snap is excluded by !**/*.snap
  • meteor/server/__tests__/__snapshots__/publicationRegistry.test.ts.snap is excluded by !**/*.snap
📒 Files selected for processing (76)
  • meteor/__mocks__/helpers/methods.ts
  • meteor/__mocks__/helpers/publications.ts
  • meteor/server/__tests__/cronjobs.test.ts
  • meteor/server/__tests__/methodRegistry.test.ts
  • meteor/server/__tests__/publicationRegistry.test.ts
  • meteor/server/api/ExternalMessageQueue.ts
  • meteor/server/api/__tests__/client.test.ts
  • meteor/server/api/__tests__/externalMessageQueue.test.ts
  • meteor/server/api/__tests__/peripheralDevice.test.ts
  • meteor/server/api/__tests__/rundownLayouts.test.ts
  • meteor/server/api/__tests__/userActions/general.test.ts
  • meteor/server/api/__tests__/userActions/system.test.ts
  • meteor/server/api/blueprints/__tests__/api.test.ts
  • meteor/server/api/blueprints/api.ts
  • meteor/server/api/client.ts
  • meteor/server/api/ingest/debug.ts
  • meteor/server/api/mongo.ts
  • meteor/server/api/peripheralDevice.ts
  • meteor/server/api/playout/api.ts
  • meteor/server/api/playout/debug.ts
  • meteor/server/api/rest/api.ts
  • meteor/server/api/rest/v0/__tests__/rest.test.ts
  • meteor/server/api/rest/v0/index.ts
  • meteor/server/api/rundown.ts
  • meteor/server/api/rundownLayouts.ts
  • meteor/server/api/showStyles.ts
  • meteor/server/api/snapshot.ts
  • meteor/server/api/studio/api.ts
  • meteor/server/api/system.ts
  • meteor/server/api/triggeredActions.ts
  • meteor/server/api/user.ts
  • meteor/server/api/userActions.ts
  • meteor/server/lib/customPublication/index.ts
  • meteor/server/lib/customPublication/publish.ts
  • meteor/server/main.ts
  • meteor/server/methodRegistrations.ts
  • meteor/server/methodRegistry.ts
  • meteor/server/methods.ts
  • meteor/server/migration/__tests__/migrations.test.ts
  • meteor/server/migration/api.ts
  • meteor/server/publicationRegistrations.ts
  • meteor/server/publicationRegistry.ts
  • meteor/server/publications/_publications.ts
  • meteor/server/publications/blueprintUpgradeStatus/publication.ts
  • meteor/server/publications/buckets.ts
  • meteor/server/publications/deviceTriggersPreview.ts
  • meteor/server/publications/externalEventSubscriptions.ts
  • meteor/server/publications/ingestStatus/publication.ts
  • meteor/server/publications/lib/lib.ts
  • meteor/server/publications/mountedTriggers.ts
  • meteor/server/publications/organization.ts
  • meteor/server/publications/packageManager/expectedPackages/publication.ts
  • meteor/server/publications/packageManager/packageContainers.ts
  • meteor/server/publications/packageManager/playoutContext.ts
  • meteor/server/publications/partInstancesUI/publication.ts
  • meteor/server/publications/partsUI/publication.ts
  • meteor/server/publications/peripheralDevice.ts
  • meteor/server/publications/peripheralDeviceForDevice.ts
  • meteor/server/publications/pieceContentStatusUI/bucket/publication.ts
  • meteor/server/publications/pieceContentStatusUI/rundown/publication.ts
  • meteor/server/publications/rundown.ts
  • meteor/server/publications/rundownPlaylist.ts
  • meteor/server/publications/segmentPartNotesUI/publication.ts
  • meteor/server/publications/showStyle.ts
  • meteor/server/publications/showStyleUI.ts
  • meteor/server/publications/studio.ts
  • meteor/server/publications/studioUI.ts
  • meteor/server/publications/system.ts
  • meteor/server/publications/timeline.ts
  • meteor/server/publications/translationsBundles.ts
  • meteor/server/publications/triggeredActionsUI.ts
  • meteor/server/security/check.ts
  • meteor/server/security/securityVerify.ts
  • meteor/server/systemStatus/__tests__/api.test.ts
  • meteor/server/systemStatus/__tests__/systemStatus.test.ts
  • meteor/server/systemStatus/api.ts
💤 Files with no reviewable changes (1)
  • meteor/server/publications/_publications.ts

Comment thread meteor/server/__tests__/methodRegistry.test.ts
Comment thread meteor/server/api/rest/v0/index.ts
Comment thread meteor/server/api/rest/v0/index.ts
Comment thread meteor/server/methodRegistry.ts
Comment thread meteor/server/publicationRegistry.ts Outdated
Comment thread meteor/server/publications/partsUI/publication.ts
Comment thread meteor/server/publications/peripheralDevice.ts
Comment thread meteor/server/publications/rundown.ts
Comment thread meteor/server/publications/rundownPlaylist.ts
Comment thread meteor/server/publications/timeline.ts
@Julusian Julusian force-pushed the refactor/ddp-publication-registry branch 2 times, most recently from 06834fd to 4c6a95f Compare June 30, 2026 10:28

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Actionable comments posted: 1

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@meteor/server/publicationRegistry.ts`:
- Around line 90-99: publishUnsafe() still accepts new registrations after
applyToMeteor() has already finalized the registry, which can make
getAllPublicationNames() and verifyAllPublicationsRegistered() see publications
that Meteor.publish() never receives. Update PublicationRegistry so
publishUnsafe() rejects late calls once the registry has been applied (using the
applied state set by applyToMeteor()), and ensure the existing publication
registration flow continues to work only before that point.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: 19f25379-83c0-4677-b2a3-7dcadbce54e5

📥 Commits

Reviewing files that changed from the base of the PR and between 06834fd and 4c6a95f.

⛔ Files ignored due to path filters (1)
  • meteor/server/__tests__/__snapshots__/publicationRegistry.test.ts.snap is excluded by !**/*.snap
📒 Files selected for processing (40)
  • meteor/__mocks__/helpers/publications.ts
  • meteor/server/__tests__/publicationRegistry.test.ts
  • meteor/server/api/rest/api.ts
  • meteor/server/api/rest/v0/__tests__/rest.test.ts
  • meteor/server/api/rest/v0/index.ts
  • meteor/server/lib/customPublication/index.ts
  • meteor/server/lib/customPublication/publish.ts
  • meteor/server/main.ts
  • meteor/server/publicationRegistrations.ts
  • meteor/server/publicationRegistry.ts
  • meteor/server/publications/_publications.ts
  • meteor/server/publications/blueprintUpgradeStatus/publication.ts
  • meteor/server/publications/buckets.ts
  • meteor/server/publications/deviceTriggersPreview.ts
  • meteor/server/publications/externalEventSubscriptions.ts
  • meteor/server/publications/ingestStatus/publication.ts
  • meteor/server/publications/lib/lib.ts
  • meteor/server/publications/mountedTriggers.ts
  • meteor/server/publications/organization.ts
  • meteor/server/publications/packageManager/expectedPackages/publication.ts
  • meteor/server/publications/packageManager/packageContainers.ts
  • meteor/server/publications/packageManager/playoutContext.ts
  • meteor/server/publications/partInstancesUI/publication.ts
  • meteor/server/publications/partsUI/publication.ts
  • meteor/server/publications/peripheralDevice.ts
  • meteor/server/publications/peripheralDeviceForDevice.ts
  • meteor/server/publications/pieceContentStatusUI/bucket/publication.ts
  • meteor/server/publications/pieceContentStatusUI/rundown/publication.ts
  • meteor/server/publications/rundown.ts
  • meteor/server/publications/rundownPlaylist.ts
  • meteor/server/publications/segmentPartNotesUI/publication.ts
  • meteor/server/publications/showStyle.ts
  • meteor/server/publications/showStyleUI.ts
  • meteor/server/publications/studio.ts
  • meteor/server/publications/studioUI.ts
  • meteor/server/publications/system.ts
  • meteor/server/publications/timeline.ts
  • meteor/server/publications/translationsBundles.ts
  • meteor/server/publications/triggeredActionsUI.ts
  • meteor/server/security/check.ts
💤 Files with no reviewable changes (1)
  • meteor/server/publications/_publications.ts
✅ Files skipped from review due to trivial changes (1)
  • meteor/server/security/check.ts
🚧 Files skipped from review as they are similar to previous changes (37)
  • meteor/server/lib/customPublication/index.ts
  • meteor/server/tests/publicationRegistry.test.ts
  • meteor/server/publicationRegistrations.ts
  • meteor/server/publications/translationsBundles.ts
  • meteor/server/publications/rundownPlaylist.ts
  • meteor/mocks/helpers/publications.ts
  • meteor/server/publications/showStyleUI.ts
  • meteor/server/publications/partsUI/publication.ts
  • meteor/server/publications/buckets.ts
  • meteor/server/publications/deviceTriggersPreview.ts
  • meteor/server/publications/blueprintUpgradeStatus/publication.ts
  • meteor/server/publications/mountedTriggers.ts
  • meteor/server/publications/packageManager/playoutContext.ts
  • meteor/server/api/rest/v0/index.ts
  • meteor/server/publications/pieceContentStatusUI/rundown/publication.ts
  • meteor/server/publications/peripheralDevice.ts
  • meteor/server/publications/packageManager/expectedPackages/publication.ts
  • meteor/server/publications/ingestStatus/publication.ts
  • meteor/server/publications/showStyle.ts
  • meteor/server/publications/triggeredActionsUI.ts
  • meteor/server/api/rest/v0/tests/rest.test.ts
  • meteor/server/publications/partInstancesUI/publication.ts
  • meteor/server/publications/lib/lib.ts
  • meteor/server/publications/externalEventSubscriptions.ts
  • meteor/server/publications/pieceContentStatusUI/bucket/publication.ts
  • meteor/server/publications/packageManager/packageContainers.ts
  • meteor/server/publications/studioUI.ts
  • meteor/server/publications/organization.ts
  • meteor/server/publications/segmentPartNotesUI/publication.ts
  • meteor/server/publications/timeline.ts
  • meteor/server/lib/customPublication/publish.ts
  • meteor/server/api/rest/api.ts
  • meteor/server/publications/peripheralDeviceForDevice.ts
  • meteor/server/publications/rundown.ts
  • meteor/server/publications/studio.ts
  • meteor/server/main.ts
  • meteor/server/publications/system.ts

Comment thread meteor/server/publicationRegistry.ts
@Julusian Julusian force-pushed the refactor/ddp-publication-registry branch from 4c6a95f to b065834 Compare June 30, 2026 11:39
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Contribution from SuperFly.tv Contributions sponsored by SuperFly.tv

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant