■ Project ■/파일럿 프로젝트

[파일럿 프로젝트] scoold와 para를 로컬에서 실행하여 연동

한길(One Way) 2023. 2. 11.

1. 개요

2. para 실행

다음은 para 애플리케이션을 실행하기 위한 환경설정 파일이다.

"개발 환경(development)"으로 하였고 포트 8080으로 설정했다. MySQL을 접속하기 위한 연결정보를 입력했다.

para-application.conf

para.env = "development"
para.port = 8080
para.dao = "SqlDAO"
para.sql.driver = "com.mysql.cj.jdbc.Driver"
para.sql.url = "mysql://localhost:3306/para"
para.sql.user = "root"
para.sql.password = "1234"

para를 실행하기 편하게 하기 위해 para.cmd를 만들었다.

@echo off
more para-application.conf
java -jar -Dconfig.file=./para-application.conf -Dloader.path=lib para-jar-1.46.0.jar
 

para 실행

3. App을 추가

npm으로 para-cli (para 명령 도구)을 설치하고 "para-cli setup"을 수행합니다.

> npm install -g para-cli

> para-cli setup

그리고 "myapp"이라는 앱을 하나 추가합니다.

> para-cli new-app "myapp" --name "My App"

C:\Users\OneWay\AppData\Roaming\para-cli-nodejs\Config\config.json

{
	"accessKey": "app:para",
	"secretKey": "mGmUFva+vmDYMMYIXC4dHGZHOp+5FwIaNKS15ZxpXVk1i8q+yZWZIA==",
	"endpoint": "http://localhost:8080",
	"jwt": "eyJhbGciOiJIUzI1NiJ9.eyJleHAiOjE ...(생략)... 357KvZmM"
}

새로 생성된 "app:myapp" json

{
  "id": "app:myapp",
  "timestamp": 1656063628926,
  "type": "app",
  "appid": "para",
  "updated": 1656063721692,
  "name": "My App",
  "votes": 0,
  "version": 0,
  "stored": true,
  "indexed": true,
  "cached": true,
  "sharingIndex": false,
  "sharingTable": false,
  "secret": "fEJsNS2cVokjS4jpIS1IDONQgwJfa/yKdApsn1RJpHasiEZLUWPfIg==",
  "readOnly": false,
  "datatypes": { "profiles": "profile" },
  "validationConstraints": {},
  "resourcePermissions": {},
  "active": true,
  "tokenValiditySec": 86400,
  "settings": {
    "gp_app_id": "",
    "gp_secret": "",
    "fb_app_id": "",
    "fb_secret": "",
    "gh_app_id": "",
    "gh_secret": "",
    "in_app_id": "",
    "in_secret": "",
    "tw_app_id": "",
    "tw_secret": "",
    "ms_app_id": "",
    "ms_secret": "",
    "sl_app_id": "",
    "sl_secret": "",
    "az_app_id": "",
    "az_secret": "",
    "ms_tenant_id": "common",
    "oa2_app_id": "",
    "oa2_secret": "",
    "security.oauth.token_url": "",
    "security.oauth.profile_url": "",
    "security.oauth.scope": "openid email profile",
    "security.oauth.accept_header": "",
    "security.oauth.download_avatars": false,
    "security.oauth.token_delegation_enabled": false,
    "oa2second_app_id": "",
    "oa2second_secret": "",
    "security.oauthsecond.token_url": "",
    "security.oauthsecond.profile_url": "",
    "security.oauthsecond.scope": "openid email profile",
    "security.oauthsecond.accept_header": "",
    "security.oauthsecond.download_avatars": false,
    "security.oauthsecond.token_delegation_enabled": false,
    "oa2third_app_id": "",
    "oa2third_secret": "",
    "security.oauththird.token_url": "",
    "security.oauththird.profile_url": "",
    "security.oauththird.scope": "openid email profile",
    "security.oauththird.accept_header": "",
    "security.oauththird.download_avatars": false,
    "security.oauththird.token_delegation_enabled": false,
    "security.ldap.server_url": "",
    "security.ldap.base_dn": "",
    "security.ldap.bind_dn": "",
    "security.ldap.bind_pass": "",
    "security.ldap.user_search_base": "",
    "security.ldap.user_search_filter": "(cn={0})",
    "security.ldap.user_dn_pattern": "uid={0}",
    "security.ldap.password_attribute": "userPassword",
    "security.ldap.username_as_name": false,
    "security.ldap.active_directory_domain": "",
    "security.ldap.mods_group_node": "",
    "security.ldap.admins_group_node": "",
    "security.saml.sp.entityid": "",
    "security.saml.sp.assertion_consumer_service.url": "",
    "security.saml.sp.nameidformat": "urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified",
    "security.saml.sp.x509cert": "",
    "security.saml.sp.privatekey": "",
    "security.saml.idp.entityid": "",
    "security.saml.idp.single_sign_on_service.url": "",
    "security.saml.idp.x509cert": "",
    "security.saml.idp.metadata_url": "",
    "security.saml.security.authnrequest_signed": false,
    "security.saml.security.want_messages_signed": false,
    "security.saml.security.want_assertions_signed": false,
    "security.saml.security.want_assertions_encrypted": false,
    "security.saml.security.want_nameid_encrypted": false,
    "security.saml.security.sign_metadata": false,
    "security.saml.security.want_xml_validation": true,
    "security.saml.security.signature_algorithm": "",
    "security.saml.attributes.id": "UserID",
    "security.saml.attributes.picture": "Picture",
    "security.saml.attributes.email": "EmailAddress",
    "security.saml.attributes.name": "GivenName",
    "security.saml.attributes.firstname": "FirstName",
    "security.saml.attributes.lastname": "LastName",
    "security.saml.domain": "paraio.com",
    "app_secret_key": "",
    "security.allow_unverified_emails": true,
    "security.one_session_per_user": true,
    "session_timeout": 86400,
    "signin_success": "http://localhost:8000/signin/success?jwt=id",
    "signin_failure": "http://localhost:8000/signin?code=3&error=true"
  }
}

4. scoold를 연동

다음은 scoold 애플리케이션을 실행하기 위한 환경설정 파일이다.

"myapp"의 access_key와 secret_key 그리고 para_endpoint를 설정하였다.

scoold-application.conf

scoold.env = "development"
scoold.app_name = "Scoold"

scoold.host_url = "http://localhost:8000"
scoold.port = 8000

scoold.para_access_key = "app:myapp"
scoold.para_secret_key = "fEJsNS2cVokjS4jpIS1IDONQgwJfa/yKdApsn1RJpHasiEZLUWPfIg=="
scoold.para_endpoint = "http://localhost:8080"

... (중략) ...

scoold를 실행하기 편하게 하기 위해 scoold.cmd를 만들었다.

@echo off
more scoold-application.conf
java -jar -Dconfig.file=./scoold-application.conf scoold-1.49.7.jar

 

scoold 실행

브라우저에서 scoold를 접속한다. 그리고 간단한 질문도 등록해 본다.

 

5. Para Web Console

para-admin 폴더에서 다음의 명령을 실행한다.

> python -m http.server 9000

브라우저에서 http://localhost:9000/를 입력하면 hello 페이지가 보인다. access_key와 secret_key을 입력하면 연결이 된다.

웹에서 "app:myapp"에서 관리하고 있는 객체들을 바로 확인할 수 있다.

 

728x90

댓글