EricKIm 10 місяців тому
батько
коміт
43c30e0d3a

+ 125 - 0
2.referece-manual/Setting-of-env-file-by-Juhyuk-kim.md

@@ -0,0 +1,125 @@
+
+
+# 다보리 Frontend에서의 Laravel .env 사용법
+
+Daboty Frontend에서는 Laravel에서 기본으로 제공하는 .env 항목이외에 항상 이용되는 변수를 추가하여 사용하고 있습니다.
+
+ .env 화일과 이외에 Backend와 연결하기 위한 .env.dabory가 별도의 화일로 사용되고 있습니다.
+
+- [Lavavel .env 기본 메뉴얼](https://laravel.kr/docs/5.7/configuration).
+- [Lavavel .env Example](https://zetawiki.com/wiki/%EB%9D%BC%EB%9D%BC%EB%B2%A8_.env,_.env.example).
+
+## .env 변수 설명 
+### [Dabory]
+ERP_THEMES=업종특화 소스코드 분리 위해 사용 (themes/erp 폴더 임포트)
+
+PRO_THEME=PRO 소스코드 분리하기 위해 사용 (themes/pro 폴더 임포트)
+
+LOCALE_SEQUENCE=다국어 사용 목록
+
+APP_MOBILE_NO=아직 사용X
+
+TAG_LINE=아직 사용X
+
+CDN_TYPE=미디어 CDN (aws-s3 or local)
+
+MEDIA_URL=미디어 base url 지정(미디어가 local or a3)
+
+FAVICON_PATH=파비콘 파일 path
+
+IS_SKIP_DBUPDATE=DBUPDATE 스킵 or 사용
+
+IS_ON_MEMBER_SIGNUP=아직 사용X
+
+## [MetaMask]
+CHAIN_ID=0xE67B
+
+CHAIN_NAME='Dang Smart Chain'
+
+RPC_URLS=http://3.38.62.211:8545
+
+NATIVE_CURRENCY_NAME=DGT
+
+NATIVE_CURRENCY_SYMBOL=DGT
+
+NATIVE_CURRENCY_DECIMALS=18
+
+BLOCK_EXPLORER_URLS=https://explorer-staging.dangnn.co.kr
+
+### [asset & cache]
+BROWSER_CACHE=브라우저 캐시사용
+
+CSSJS_URL=local or asset url 입력
+
+### [Printer]
+REPORT_SERVER_URL=프린터 서버 base url
+
+### [Laravel]
+APP_NAME=앱 이름
+
+APP_ENV=.env 기본 메뉴얼 참고
+
+APP_KEY=base64:.env 기본 메뉴얼 참고
+
+APP_DEBUG=.env 기본 메뉴얼 참고
+
+APP_URL=앱 url
+
+LOG_CHANNEL=stack
+
+LOG_LEVEL=debug
+
+DB_CONNECTION=사용x
+
+DB_HOST=사용x
+
+DB_PORT=사용x
+
+DB_DATABASE=사용x
+
+DB_USERNAME=사용x
+
+DB_PASSWORD=사용x
+
+
+BROADCAST_DRIVER=사용x
+CACHE_DRIVER=사용x
+FILESYSTEM_DRIVER=사용x
+QUEUE_CONNECTION=사용x
+SESSION_DRIVER=사용x
+SESSION_LIFETIME=사용x
+
+MEMCACHED_HOST=사용x
+
+REDIS_HOST=사용x
+REDIS_PASSWORD=사용x
+REDIS_PORT=사용x
+
+MAIL_MAILER=.env 기본 메뉴얼 참고
+MAIL_HOST=.env 기본 메뉴얼 참고
+MAIL_PORT=.env 기본 메뉴얼 참고
+MAIL_USERNAME=.env 기본 메뉴얼 참고
+MAIL_PASSWORD=.env 기본 메뉴얼 참고
+MAIL_ENCRYPTION=.env 기본 메뉴얼 참고
+MAIL_FROM_ADDRESS=.env 기본 메뉴얼 참고
+MAIL_FROM_NAME=.env 기본 메뉴얼 참고
+
+AWS_ACCESS_KEY_ID=.env 기본 메뉴얼 참고
+AWS_SECRET_ACCESS_KEY=.env 기본 메뉴얼 참고
+AWS_DEFAULT_REGION=.env 기본 메뉴얼 참고
+AWS_BUCKET=.env 기본 메뉴얼 참고
+AWS_USE_PATH_STYLE_ENDPOINT=.env 기본 메뉴얼 참고
+
+PUSHER_APP_ID=사용x
+PUSHER_APP_KEY=사용x
+PUSHER_APP_SECRET=사용x
+PUSHER_APP_CLUSTER=사용x
+
+MIX_PUSHER_APP_KEY=사용x
+MIX_PUSHER_APP_CLUSTER=사용x
+
+ANALYTICS_UA_ID=
+ANALYTICS_VIEW_ID=
+
+ANALYTICS_G_ID=
+ANALYTICS_PROPERTY_ID=

+ 68 - 0
2.referece-manual/how-to-run.md

@@ -0,0 +1,68 @@
+
+
+## golang install : go1.17 or above
+
+## Folder Location : PHPPATH
+
+##  1. How to run php-docker
+ 
+###  # cdphp
+###  # cd php_folder (run ls command to find a specific php_folder)
+###  # dkrmcu-remove-containers-and-compose-up
+  
+.  
+##  2. How to stop php-docker (delete all docker containers)
+###  # cdphp
+###  # cd php_folder
+###  # docker rm -f $(docker ps -a -q)
+
+.
+## 3. Configuration
+ 
+### .env Location : $HOME/.env (Laravel Env variable and Dabory variable combined)
+ 
+### .env.dabory Location : $HOME/.env.dabory (Dabory API Connection and Token Keys)
+
+#### Note1 : There are divided concepts of ERP / PRO in dabory solution from the other web/app solutions.
+   ERP is for backoffice pages for company or organization staffs and managers (Extension of Admin Page)
+   
+   PRO is for frontoffice pages for guest and customer member who are outside of company or organization (Extension of Service Page)
+
+#### Note2 : Dabory Media Library is inspired by Wordpress media library and extened for more wide range of use.
+
+#### Note3 : All of variables "Laravel" sub item can be referred in website below.
+    https://laravel.com/docs/7.x/configuration
+
+### Important !! : In development or web design stage, You should set .env as follows:
+1. BROWSER_CACHE=false
+2. CSSJS_URL=local
+
+This reduces website rendering speed, but changes in js script and css are fed to web pages in no time. 
+ 
+
+## .env Variable Description.
+
+|    Type  |      Name      |  Usage | Applied | Remarks |
+|----------|-------------|------|------|------|
+| Dabory| ERP_THEMES| ERP theme | | Can be multiple themes|
+| | PRO_THEME| PRO theme| | only one theme available for one site|
+| | LOCALE_SEQUENCE| Language and Local Sequence| | Separated by comma |
+| | APP_MOBILE_NO| Mobile No for Admin message | | |
+| | TAG_LINE| Page Tag for SEO| | |
+| | MEDIA_URL| File upload URL| | Local, Website and CDN such as S3 available|
+| | FAVICON_PATH| Pavicon File Path| | |
+| | IS_SKIP_DBUPDATE| Skip DB update | | |
+| | IS_ON_MEMBER_SIGNUP| | Yes| |
+| | BROWSER_CACHE| Browser Cache Available| | |
+|Printer | REPORT_SERVER_URL| Shared Report Server| | Crystal Report suppored |
+| Laravel| APP-xxx| Refer Laravel Manual site for more info |  | https://laravel.com/docs/7.x/configuration|
+| | DB_CONNECTION| | Yes | Dabory Does Not use Eloquent ORM in Laravel|
+| | AWS_ACCESS_XXX | | | Dabory use S3 as media library|
+| | PUSHER_APP_ID| | No| |
+| | LOG_CHANNEL| | No| |
+| | MEMCACHED_HOST| | No| |
+| | SESSION_DRIVER| | No| |
+| | REDIS_HOST| | No| |
+| | MAIL_MAILER| | | Dabory use S3 as mailer in Laravel|
+| | PUSHER_APP_ID| | No| |
+| | MIX_PUSHER_APP_KEY| | No| |

+ 42 - 0
2.referece-manual/usage-of-libSodium.md

@@ -0,0 +1,42 @@
+
+
+## Sodium 이란 ?
+
+Sodium is a modern, easy-to-use software library for encryption, decryption, signatures, password hashing, and more.
+It is a portable, cross-compilable, installable, and packageable fork of NaCl, with a compatible but extended API to improve usability even further.
+Its goal is to provide all of the core operations needed to build higher-level cryptographic tools.
+Sodium is cross-platform and cross-language. It runs on many compilers and operating systems, including Windows (with MinGW or Visual Studio, x86 and x86_64), iOS, and Android. JavaScript and WebAssembly versions are also available and fully supported. Furthermore, bindings for all common programming languages are available and well-supported.
+The design choices emphasize security and ease of use. But despite the emphasis on high security, primitives are faster across-the-board than most implementations.:
+
+- [Sodium official documentation](https://libsodium.gitbook.io/doc/).
+- [Quick Manual how to use it in PHP](https://www.php.net/manual/en/function.sodium-crypto-box-seal.php).
+- [Referece Manual how to use it in PHP](https://www.php.net/manual/en/book.sodium.php).
+
+## 다보리 ERP는 
+1) 각 사용자 DB의 접속정보를 sodium 으로 암호화한 후 해당 접속정보를 Frontend Locate 하고
+2) 해당정보를 Backend 에 제출하고 GateToken을 리턴 받아서 해당 토큰으로 세션을 유지하 는 동시에  DB 접속정보를 Backend의 Memory DB 에만 임시로 존재하게 하는 Frontend Driven 방식을 채택함으로써
+3) ISMS 보안 사항을 준수합니다.
+4) 동일한 Backend API 로 다양한 Microservice Frontend 요청을 처리할 수 있는 Gateway API를 제공합니다.
+
+
+## Encryption 구조 는 
+1) 최초에 작성된 sodium Key Pair는 SSO 서버에 별도로 저장이 됩니다.
+2) Frontend 에는 .env.dabory에 BeforeBase64 Key에 DB 접속 정보가 저장됩니다.
+3) Frontend 가 Backend API 를 사용하기 위해서 최초에 Client Id와 BA64 Key를 제출하면 GateToken을 Return  받습니다.
+4) 이 때 Backend API 서버의 Memory DB에 해당 GateToken과 연관된 DB접속 정보가 생성되어 이후 DB 접속을 반복할 수 있습니다. 
+5) Key pair는 SSO 서버에 저장되고 가져오는 것이 기본으로 되어 있으나 Backend API 서버의 conf 화일에 저장해서 운용됨으로써 SSO 서버와의 독립적으로 운영될 수 있습니다. 
+
+
+## Sodium 관련 소스 코드 
+
+Frontend에서 Sodium과 관련된 소스코드
+
+- [ KeyPair/PublicKey 등을 를 생성하는 일반적인 PHP Code ](https://www.php.net/manual/en/function.sodium-crypto-box-seal.php).
+
+- [Sodium 사용 Ajax 제공 (260~262 Lines)](http://git.daboryhost.com:10880/dabory/dbrerp/src/master/routes/web.php).
+- [ DB 정보 암호화 how to use it in PHP (254~263 Lines)](http://git.daboryhost.com:10880/dabory/dbrerp/src/master/resources/views/front/dabory/pro/my-app/popup-form1/form-a/client-app-form.blade.php).
+
+
+**A. Ajax를 이용하여 Sodium function 구성 이유.** 
+
+    팝업 div에서 직접 PHP 코드를 사용할 수 없으므로 Ajax를 이용하여 Sodium function 을 서비스 합니다