OpenPipelineIO는 사용자 권한에 따라 접근할 수 있는 기능별 제어 권한이 다릅니다. 아래표를 참고하세요.
구 분 | Unknown | Guest | Client | Artist | Lead | PM | SV | IO,IT | PD | HQ | Dev | Admin |
---|---|---|---|---|---|---|---|---|---|---|---|---|
Level | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 |
Import / Export 메뉴 | X | X | X | X | O | O | O | O | O | O | O | O |
Review 메뉴 | X | X | X | O | O | O | O | O | O | O | O | O |
List 메뉴 | X | X | X | X | O | O | O | O | O | O | O | O |
Add 메뉴 | X | X | X | X | O | O | O | O | O | O | O | O |
Remove 메뉴 | X | X | X | X | X | O | X | O | O | X | O | O |
도움말 메뉴 | O | O | O | O | O | O | O | O | O | O | O | O |
Task 수정 | X | X | X | O | O | O | O | O | O | O | O | O |
태그 수정 | X | X | X | X | O | O | O | O | O | O | O | O |
소스 수정 | X | X | X | X | O | O | O | O | O | O | O | O |
레퍼런스 수정 | X | X | X | X | O | O | O | O | O | O | O | O |
프로젝트 제어 | X | X | X | X | X | X | X | X | X | X | X | O |
User 제어 | X | X | X | X | X | X | X | X | X | X | X | O |
사용자 AccessLevel 수정 | X | X | X | X | X | X | X | X | X | X | X | O |
조직관리 삭제 | X | X | X | X | X | X | X | X | X | X | O | O |
프로젝트 삭제 | X | X | X | X | X | X | X | X | X | X | X | O |
Endpoint | description | attribute name | example |
---|---|---|---|
/api/user | 유저정보를 가지고 오기 | id | $ curl -H "Authorization: Basic <TOKEN>" https://openpipeline.io/api/user?id=woong |
/api/users | 팀장 정보를 가지고 오기 | 검색어 | $ curl -H "Authorization: Basic <TOKEN>" https://openpipeline.io/api/users?searchword=팀장 |
/api/users | 팀, 세부팀, 팀장의 정보를 가지고 오기 | 검색어 | $ curl -H "Authorization: Basic <TOKEN>" https://openpipeline.io/api/users?searchword=합성팀,1팀,팀장 |
/api/users | 개발팀, 1팀 정보를 가지고 오기 | 검색어 | $ curl -H "Authorization: Basic <TOKEN>" https://openpipeline.io/api/users?searchword=개발팀,1팀 |
/api/autocompliteusers | input form Autocomplite용 유저리스트 가지고 오기 | . | $ curl -H "Authorization: Basic <TOKEN>" https://openpipeline.io/api/autocompliteusers |
/api/ansiblehosts | Ansible Hosts 텍스트 파일을 출력합니다. | . | $ curl -H "Authorization: Basic <TOKEN>" https://openpipeline.io/api/ansiblehosts |
Endpoint | description | attribute name | example |
---|---|---|---|
/api/validuser | 사용자의 ID,Password가 유효한지 체크 | id, pw | $ curl -H "Authorization: Basic <TOKEN>" -d "id=id&pw=password" https://openpipeline.io/api/validuser |
/api/setleaveuser | 사용자의 퇴사 상태 설정(권한은 Unknown으로 변경) | id, leave | $ curl -H "Authorization: Basic <TOKEN>" -d "id=id&leave=true" https://openpipeline.io/api/setleaveuser |
/api/initpassword | 사용자의 패스워드를 리셋한다. | id | $ curl -H "Authorization: Basic <TOKEN>" -d "id=userid" https://openpipeline.io/api/initpassword |
Endpoint | description | attribute name | example |
---|---|---|---|
/api2/user | 유저정보 삭제하기 | id | $ curl -H "Authorization: Basic <TOKEN>" -X DELETE https://openpipeline.io/api2/user?id=woong |
-authmode
모드가 활성화 되어있지 않다면 restAPI은 공개되어 있고, 아무나 사용할 수 있습니다.
OpenPipelineIO 서비스를 실행할 때 -authmode
옵션을 붙히면 보안모드가 작동됩니다.
이 때부터는 curl 명령을 사용할 때 -H "Authorization: Basic [TOKEN KEY]"
문자를 사용해야 데이터를 가지고 올 수 있습니다.
이 Token 키는 사용자의 가입, 패스워드변경, 패스워드초기화시 자동으로 변경됩니다.
curl -H "Authorization: Basic JDJhJDEwJHBBREluL0JuRTdNa3NSb3RKZERUbWVMd0V6OVB1TndnUGJzd2k0RlBZcmEzQTBSczkueHZH" http://192.168.219.101/api/user?id=khw7096
웹을 통해서 가입되는 모든 유저의 AccessLevel 값은 기본적으로 3 입니다.(아티스트)
아래 명령어를 통해서 AccessLevel 을 변경할 수 있습니다.
$ sudo openpipelineio -accesslevel 4 -id khw7096
OPIO_JWT_TOKEN_KEY 로 세션 암호화에 사용될 문자를 환경변수로 잡아주세요. 서버로 사용될 컴퓨터에서 아래 파일을 편집하면 됩니다. 보안에 문제가 될 이슈가 있다면 가끔 주기적으로 바꾸어주세요. session 암호화에 사용되기 때문에 사용자는 로그인만 다시 해주면 됩니다.
macOS라면 ~/.profile, centOS 라면 ~/.bashrc 파일 입니다.
export OPIO_JWT_TOKEN_KEY="암호화,복호화에 사용될 문자"
#!/usr/bin/python
#coding:utf-8
import urllib2
import urllib
import json
url = "http://openpipeline.io/api/validuser"
values = {}
values["id"] = "userid"
values["pw"] = "userpasss&;"
data = urllib.urlencode(values) # 패스워드에는 특수문자가 포함될 수 있습니다. url encode 합니다.
try:
req = urllib2.Request(url, data)
result = urllib2.urlopen(req)
print(json.load(result))
except:
print "error"
#!/usr/bin/python
#coding:utf-8
import urllib2
import json
try:
id = "userid"
endpoint = "https://openpipeline.io/api/user?id=%s" % (id)
request = urllib2.Request(endpoint)
key = "<Token>"
request.add_header("Authorization", "Basic %s" % key)
data = urllib2.urlopen(request)
print json.load(data)
except:
print("RestAPI 를 가지고 올 수 없습니다.")
사용자의 최근 접속IP를 이용해서 Ansible에서 활용 가능한 hosts 파일을 생성할 수 있습니다.
$ curl -H "Authorization: Basic <TOKEN>" https://openpipeline.io/api/ansiblehosts > userhosts.lst