Discourse Automation은 정말 멋지고 유용하지만, 사용 가능한 자동화 기능은 다소 제한적입니다. 그중 많은 것들은 범용 도구가 아니라 특정 CDCK 고객의 구체적인 사용 사례를 해결하기 위한 일회성 해킹[1]처럼 보입니다.
사용자 정의 자동화를 생성하는 것은 가능하지만, 호스팅 고객이 이를 배포할 수 있는 방법을 제가 찾아볼 수 없습니다. 게다가 이 기능들은 꽤 위험할 수 있어 보입니다. 제가 작성한 자동화를 배포하도록 친절한 Discourse 스태프와 협력할 수는 있겠지만, 양쪽 모두에게 상당한 작업이 될 것 같습니다.
그래서, 제 아이디어는 다음과 같습니다:
- OCI[2] 이미지 링크(
registry.example.org/imagename:tag사용)를 제공할 수 있는 관리자 인터페이스[3]. - 해당 이미지와 API 키를 연결하는 방법(기존 API 키 관리자 페이지와 연결)
- 해당 이미지와 웹훅을 연결하는 방법(기존 웹훅 관리자 페이지와 연결)
- 이 기능에 주기적 일정 옵션을 추가하거나, (더 좋다고 생각합니다!) 웹훅에 일반적으로 해당 기능을 추가하는 것.
브로커/디스패처는 웹훅을 수신하고 일치하는 컨테이너로 전달하며, API 키를 시크릿으로 제공하고 페이로드를 stdin 또는 HTTP 포트를 통해 전달합니다. (이 중 많은 것이 “원샷” 방식이 될 것이라 예상합니다 — 컨테이너가 시작되어 하나의 이벤트를 처리한 후 종료되는 방식 — 하지만 영구적인 옵션(또는 N초 동안 대기한 후 종료되는 옵션)도 있을 수 있습니다.)
컨테이너는 적절한 리소스 제한과 함께 실행되며, 영구적 저장소가 없거나 동일한 저장소 풀 첨부 파일 등에 접근할 수 있어야 합니다. 호스팅 사이트의 경우, 페이지뷰, 이메일, 저장소와 함께 플랜별 제한 사항으로 자동화 CPU 시간을 추가할 수 있을 것 같습니다.
사이트 API의 위치는 환경 변수 또는 다른 시크릿으로 제공할 수 있습니다. 다른 네트워크 접근은 기본적으로 금지되지만, 특정傳出 연결을 허용할 수 있도록 해야 합니다.
물론 현재에도 "사이드"로 이러한 것을 설정할 수는 있지만, API와 웹훅 관리자 인터페이스와 통합되면 정말 멋질 것입니다(그리고 시크릿 관리 문제도 기본적으로 거의 해결됩니다). 또한, 디스패처/브로커 설정은 다소 복잡합니다.