- 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
3.8 KiB
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 snapshotservices/push-proxy/server/— Android/APNs notification server, config, metrics, HTTP server implementationservices/push-proxy/config/— sample push-proxy configurationservices/push-proxy/docker/— container image build definitionsservices/push-proxy/internal/— internal version packageservices/push-proxy/swagger/— push-proxy API spec toolingservices/push-proxy/go.mod,services/push-proxy/Makefile— Go module and release/build entrypointsservices/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 entrypointservices/push-proxy/server/android_notification_server.go— FCM notification delivery pathservices/push-proxy/server/apple_notification_server.go— APNs notification delivery pathservices/push-proxy/server/config_push_proxy.go— push-proxy configuration loadingservices/push-proxy/server/metrics.go— metrics exposureservices/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.mdbaseline을 근거 없이 변경하지 않는다.- 이 도메인을
services/core하위 구성 요소로 흡수하거나 nexo 독자 서버 제품으로 확장하지 않는다. - upstream-owned 파일에 대량 rename, formatting-only churn, 광범위 재배치를 작업 범위 없이 수행하지 않는다.
- generated/build/cache 산출물을 소스 변경처럼 다루지 않는다.