nexo/agent-ops/rules/project/domain/push-proxy-service/rules.md
toki 6ca7989169 feat: runtime image validation & domain rules update
- Add mattermost-app and push-proxy-service domain rules
- Add bin/publish-runtime-images script
- Add runtime-image-validation documentation
- Update agent-ops domain rules and project rules
- Remove outdated 01_image_publish task files
- Update docs/README.md
2026-05-28 10:41:06 +09:00

3.8 KiB

domain last_rule_review_commit last_rule_updated_at
push-proxy-service 4b0222479d 2026-05-28

push-proxy-service

목적 / 책임

services/push-proxy는 Mattermost push-proxy 원본 repository clone을 담당한다. nexo runtime image 검증에 쓰이더라도 원본 push notification proxy service로 유지하고, upstream-followable snapshot 기준을 보존한다.

포함 경로

  • services/push-proxy/ — Mattermost push-proxy repository snapshot
  • services/push-proxy/server/ — Android/APNs notification server, config, metrics, HTTP server implementation
  • services/push-proxy/config/ — sample push-proxy configuration
  • services/push-proxy/docker/ — container image build definitions
  • services/push-proxy/internal/ — internal version package
  • services/push-proxy/swagger/ — push-proxy API spec tooling
  • services/push-proxy/go.mod, services/push-proxy/Makefile — Go module and release/build entrypoints
  • services/push-proxy/UPSTREAM.md — upstream baseline 기록

제외 경로

  • services/core/ — Mattermost server/webapp runtime 책임
  • packages/messaging_flutter/ — Flutter push plugin 책임
  • apps/flutter-test/ — plugin 검증용 Flutter test host 책임
  • apps/mattermost/ — Mattermost mobile app clone 책임
  • docs/, bin/ — workspace 공통 문서와 command 책임

주요 구성 요소

  • services/push-proxy/main.go — push-proxy process entrypoint
  • services/push-proxy/server/android_notification_server.go — FCM notification delivery path
  • services/push-proxy/server/apple_notification_server.go — APNs notification delivery path
  • services/push-proxy/server/config_push_proxy.go — push-proxy configuration loading
  • services/push-proxy/server/metrics.go — metrics exposure
  • services/push-proxy/docker/Dockerfile — runtime image build 기준
  • services/push-proxy/UPSTREAM.md — source repository, branch, snapshot commit 기록

유지할 패턴

  • upstream branch는 Mattermost push-proxy master 기준으로 추적하고, snapshot commit은 services/push-proxy/UPSTREAM.md에 기록한다.
  • 이 도메인은 push notification proxy server clone으로 유지하며 nexo 독자 서버 제품으로 재정의하지 않는다.
  • runtime image build는 services/push-proxy/docker/와 Go module 기준을 사용하고, publish orchestration은 workspace-ops wrapper가 담당할 수 있다.
  • upstream snapshot 반영은 app 또는 core snapshot과 섞지 않고 별도 작업 단위로 다룬다.
  • nexo-specific patch가 필요하면 가능한 한 snapshot 밖의 compose, 문서, wrapper, 작은 명시 patch로 둔다.

다른 도메인과의 경계

  • core-service: Mattermost server runtime은 services/core가 소유하며, push-proxy는 server가 위임하는 push notification delivery endpoint 역할을 한다.
  • messaging-flutter: device token 저장, native notification 표시, ACK/open/reply 처리는 Flutter plugin이 소유하며, push-proxy는 Android/APNs push 전달 서버 역할만 한다.
  • mattermost-app: Mattermost mobile app은 push-proxy를 필요로 하는 client clone이며, push-proxy server 구현을 소유하지 않는다.
  • workspace-ops: workspace wrapper가 image build/publish를 호출할 수 있지만 push-proxy server 구현과 Dockerfile 기준은 이 도메인이 소유한다.

금지 사항

  • services/push-proxy/UPSTREAM.md baseline을 근거 없이 변경하지 않는다.
  • 이 도메인을 services/core 하위 구성 요소로 흡수하거나 nexo 독자 서버 제품으로 확장하지 않는다.
  • upstream-owned 파일에 대량 rename, formatting-only churn, 광범위 재배치를 작업 범위 없이 수행하지 않는다.
  • generated/build/cache 산출물을 소스 변경처럼 다루지 않는다.