API를 통해 비밀번호 없이 사용자 생성

지원 포럼을 헬프데스크(YouTrack)에서 Discourse로 이관하고 있습니다.
API를 사용하여 다음 작업을 수행하고 싶습니다:

  1. YouTrack에서 사용자(이름, 사용자 이름, 이메일)를 가져와 Discourse에 유사한 사용자를 생성합니다. 비밀번호는 설정하지 않습니다!
  2. 이러한 모든 사용자에게 동일한 사용자 이름과 이메일을 사용하여 Discourse 가입을 초대합니다(새 비밀번호를 생성하도록).
  3. YouTrack에서 특정 주제, 첨부 파일, 댓글을 가져와 Discourse에 동일한 내용을 생성합니다.
    이를 위해 해당 사용자가 Discourse에 존재해야 하며, 주제와 댓글의 저자로 지정될 수 있어야 합니다. 이는 사용자를 초대받은 후 Discourse에 가입했든 아니든 관계없이 수행되어야 합니다.

문제:
a) API 문서에는 사용자 생성 시 “password” 필드가 필수라고 나와 있습니다. 이 문제를 어떻게 우회할 수 있나요?
b) 이러한 사용자(API를 통해 생성, 이미 몇 개의 주제가 이름에 연결되어 있음, 아직 확인되지 않음, 비밀번호 미설정)의 상태는 어떻게 되어야 하나요?

사용자, 카테고리, 주제, 게시물은 API가 아닌 가져오기 스크립트를 통해 생성할 것입니다.

모든 사용자에게 개별적으로 이메일을 보내는 가장 좋은 방법은 아직 명확하지 않지만, 가져오기 스크립트에서 사용자를 활성화된 상태로 남겨 두고 요약 메시지를 이메일로 받아볼 수 있도록 하면 됩니다. 이 요약 이메일에는 새 포럼에 접근하는 방법에 대한 지침이 포함되어야 합니다.

이러한 스크립트는 무엇과 함께 작동하나요? 데이터베이스와 직접적으로?

scripts/import의 가져오기 스크립트를 확인해 보세요.

이 스크립트를 사용해 봤는데, 잘 동작하는 것 같긴 한데 계속 오류 메시지가 나옵니다:

 ./create-user 'Test User Four' me@[domain] test4 41 default
Creating user: test4 user test4 created. .  . Adding to group 41. . . {"errors":["You supplied invalid parameters to the request: usernames"],"error_type":"invalid_parameters"}

어디서 잘못했는지 모르겠어요. 또한, 여기서 그룹과 비밀번호를 설정하지 않는 것도 가능한가요?

대부분은 잘 모르겠지만, 잘못된 그룹 번호를 사용하고 있어서 오류가 발생하는 것 같은데요? 사용자가 추가되는 과정이라면 이미 그룹이 설정되지 않은 상태일 것 같습니다. :wink:

스크립트를 수정해서 비밀번호를 설정하지 않도록 할 수 있을 것 같은데, 아무도 모르는 랜덤 비밀번호를 설정하는 것은 사실상 비밀번호가 없는 것과 거의 같습니다.

커스터마이징이 필요하고 예산이 있다면, 오늘 늦게까지 해드릴 수 있을 것 같습니다.

그룹 번호는 맞습니다. /groups.json에서 가져온 것이니까요. 어쨌든, 제 현재 목표는 사용 가능한 도구로 어떻게든 해결책을 찾는 것입니다. 제안과 도움에 감사드립니다!

음. 아마 그 API가 변경되었나 봐요. 이제 그룹 이름을 받아들이게 된 것 같아요. 해결책을 찾게 되면 PR을 제출해 주세요.

이 문제를 좀 더 자세히 살펴보기 전에 처리해야 할 일이 꽤 있어요.

아니요. ID 대신 그룹 이름을 사용하면
{"status":404,"error":"Not Found"}
이 반환됩니다.

또한 user test6 created. . . Adding to group라는 오류 메시지가 표시된 후에도 실제로는 사용자가 생성되지 않는다는 점도 이상합니다.

음. 글쎄, 스크립트는 URL이 아니라 헤더에 API 사용자 이름과 키를 보내도록 업데이트가 확실히 필요합니다. 2년 전에는 작동했던 것 같지만, 지금의 저보다 2년 덜 경험 있는 사람이 작성한 것처럼 보입니다. :wink:

사용자가 실제로 생성되었는지 확인하는 오류 처리가 전혀 없으니, 제가 이 작업을 맡는다면 수정할 부분입니다.

그룹이 하나도 없으면 사용자를 그룹에 추가하려는 시도를 건너뛰는 것 같습니다.

드미트리 @dm.linov님, 안녕하세요!

Confluence, Youtrack, Discourse 간 이동을 위한 방법을 검색하다가 이 주제를 발견했습니다.

Youtrack에서 Discourse로 이전할 때의 주요 포인트를 공유해 주실 수 있을까요? 이전 이유는 비용, 성능, 또는 검색 관련 문제였나요?

이반, 안녕하세요.

두 가지 이유 모두 사실입니다. 우리는 고객이 공개 포럼에서 지원을 받을 수 있도록 하기를 원했습니다. 이를 통해 전 세계 사람들이 우리가 얼마나 훌륭한지 볼 수 있도록 하려는 것이었죠 :slight_smile: 그리고 몇 가지 이유로 인해 YouTrack은 이를 위한 좋은 도구가 아니었습니다. 그중 하나는 사용자당 과금이라는 점입니다.

현재 우리의 설정은 다음과 같습니다.

  • 지원, 기능 요청 및 토론을 위한 Discourse. 우리 웹사이트의 “문의하기” 양식도 이곳으로 전송됩니다(새 주제와 “staged” 상태의 사용자가 API를 통해 자동으로 생성됩니다)
  • 개발을 위한 YouTrack - 작업, 버그 및 기타 이슈
  • 일반 문서를 위한 Confluence. 특정 사용 사례를 설명하는 일부 아티클은 Discourse에도 게시됩니다(수동으로)

우리는 또한 Discourse를 회사 블로그로 사용해보았지만, 나중에 Hashnode를 선호하게 되었습니다.

드미트리, 감사합니다. 이 경험은 우리에게 유용할 것입니다.

현재 Confluence에서 문서를 이전하는 작업을 진행 중입니다. Confluence는 검색 기능이 약하고 비용이 비싸기 때문입니다. Youtrack은 마크다운을 지원하는 지식 베이스 기능을 갖추고 있으며, 가져오기가 쉽고 검색 기능도 충분히 만족스럽습니다. Youtrack은 이미 저희의 버그 트래킹 시스템으로 사용되고 있어 계속 유지할 계획입니다.

혹시 Youtrack의 지식 베이스가 프로덕션 환경에서 느린 것이 확인된다면, 사용하지 않는 쪽으로 고려해 볼 수 있습니다.

Discourse는 3차 지원 시스템으로 사용되고 있습니다. 주요 기능은 고객의 해결책을 저장하고 모범 사례를 공유하는 것입니다. 불행히도 고객에게 Discourse를 사용하는 것은 어렵습니다. 고객 지원 팀이 Service desk를 사용하고 있기 때문이며, 또한 고객별로 수백 개의 비공개 카테고리를 만드는 것도 너무 까다롭기 때문입니다.

어쨌든, Discourse는 전반적으로 훌륭합니다 :slight_smile:.

제가 아는 한, 우리는 YT 지식 베이스를 사용한 적이 없어서 이에 대해 말씀드릴 수 없습니다.

Confluence에 대해서는 현재 대체 방안을 찾고 있지만, 서두르지는 않고 있습니다 :slight_smile:

Discourse for teams를 확인해 보셨나요?

@blake 아직은 아니에요, 확인해 볼게요. 감사합니다!

Discourse for Teams를 Google Currents와 함께 사용하는 것도 고려해볼 가치가 있을 것입니다. :speech_balloon: