diff --git a/.gitignore b/.gitignore index b6e4761..7dd611f 100644 --- a/.gitignore +++ b/.gitignore @@ -14,7 +14,7 @@ dist/ downloads/ eggs/ .eggs/ -lib/ +#lib/ lib64/ parts/ sdist/ @@ -102,8 +102,8 @@ celerybeat.pid *.sage.py # Environments -.env -.venv +#.env +#.venv env/ venv/ ENV/ @@ -127,3 +127,9 @@ dmypy.json # Pyre type checker .pyre/ + + +# FlaksFarm +config.yaml +lib2/ +.vscode/ diff --git a/files/memo.txt b/files/memo.txt new file mode 100644 index 0000000..5fb6bc3 --- /dev/null +++ b/files/memo.txt @@ -0,0 +1,193 @@ +"env": { + "GEVENT_SUPPORT": "True", + "use_coverage": "False" +}, + +"cwd": "${workspaceFolder}\\..\\working", + + + + + +플로그인 보안 + + +secure_member + + +secure 접미사가 붙은 플러그인은 +사용자가 임의로 변경하는 것을 방지하기 위해 +파일크기를 비교한다. + +무조건 git update를 한다 +git이 없다면 로딩하지 않음 + + + +코드에서 url 통신하여 인증한다. + + + +"name": "Python: Celery", + "type": "python", + "request": "launch", + "module": "celery", + "console": "integratedTerminal", + "args": [ + "-A", + "main.celery", + "worker", + "-l", + "info", + "-P", + "gevent", + + +celery -A main.celery worker -l info -P gevent --user_option + + + +// 기존 소스에서 이름만 변경 +// get_formdata => getFormdata + +m_modal => showModal + +use_collapse = > useCollapse + + + +jQuery로 id 접근시 $(“#id”), +ex) $(“#header_area”) +class로 접근시 $(“.class”), +ex) $(“.section_nav”) +name으로 접근시 $(tag_name[name=name]), +ex) $(“input[name=search_value]“) + + +$("input:checkbox[id='ID']").is(":checked") == true : false /* by ID */ +$("input:checkbox[name='NAME']").is(":checked") == true : false /* by NAME */ + + + + + + + +## FlaskFarm과 SJVA용 플러그인과 차이점 + + - Visual Studio Code 에서 디버깅이 가능하다. + 개별 플러그인 뿐만 아니라 Framework와 celery task도 Breakpoint 설정하여 디버깅이 가능하다. + + - flask 디버그 모드를 지원한다. 코드 변경시 자동으로 다시 로딩되며, 로딩시간 단축을 위해 로딩 플러그인 목록을 지정할 수 있다. + + - config.yaml 파일을 사용한다. 실행시 파일 위치를 지정할 수 있고 파일 내용 중 데이터 폴더 위치 및 port를 지정할 수 있다. 이를 활용해서 같은 소스지만 운영용으로 구동하면서 다른 config.yaml 파일을 사용하여 개발이 가능하다. + TODO: celery 실행시 파일지정 + + - info.json 대신 info.yaml을 사용한다. + info.yaml은 자동으로 생성되지 않기 때문에 수동으로 변경한다. + + - UI가 전혀 없는 라이브러리 플러그인의 경우 info.yaml 이 없으면 플러그인 목록에 나타나지 않는다. 가능한 info.yaml 파일을 작성하여 FF에서 사용하는 것을 명시한다. pip 로 설치하지 않는 package 폴더도 플러그인에 폴더에 넣어서 import 하여 사용할 수는 있지만 같은 이유로 플러그인 목록에는 나타나지 않는다. + + - __init__.py 를 사용하지 않는다. + package를 CLI 환경에서 사용할 경우 __init__.py에 플랫폼 관련 함수를 import 함으로서 플러그인 전용으로만 사용해야 했지만, FF에서는 setup.py 파일을 직접 import하기 때문에 플러그인용, 일반 CLI용 겸용으로 사용 가능하다. + + - 메뉴 구성이 변경되었고, plugin 패키지 클래스, 함수명이 변경되었다. + + - blueprint, db 파일 설정 등 이전에 복붙하였던 코드는 framework에서 처리한다. + + - framework에 연동되는 부분만 변경되었고 기본적인 flow는 거의 같다. + + - logic, sub, sub2 등등 애매한 단어 개념이 변경되었다. + Plugin - Module - Page 단위이며 v4에서는 플러그인은 하나 이상의 모듈을 가져야한다. + 일반적이지 않는 플러그인(파일매니저 등)은 여전히 직접 route를 지정하여 작성할 수 있다. + + - 사용자 제한이 있는 기능은 membership 플러그인을 사용하여 적절하게 처리해야 한다. + 예: 등급 정보를 얻어와 낮은 등급인 경우 로딩 중단 등. + + - from .setup import * + 문장이 대부분의 파일에 들어갈 것으로 가정하였다. + import에 F 와 P 가 있으며 F는 framework instance로 F.config['path_data] + F.db, F.plugin_list 과 같이 framework 값에 접근에 사용하며, + P는 plugin instance로 P.logger, P.ModelSetting 에 사용한다. + + + + + + + + + + + +## TODO + - celery 실행시 config.yaml 위치 지정 + +## 코드보안 + - klive+ 에서 사용한 decrypt 를 framework 단위에서 지원 + - 어짜피 pyc to py는 가능함. + - 코드 변경하여 사용하는 것을 막기 위해 filesize 체크. + - 이것도 framework 수정하여 우회 가능 + - c 코드를 적절하게 사용 + - 인증 같은 경우의 처리는 서버단에서 가능하도록 함. + - + + + +# info.yaml + ## 필수 + 'title': "번역", + 'version': '1.0.0.0', + 'package_name' : 'trans', + 'developer': 'TEAM', + 'description': '번역 관련 설정 및 API 제공', + 'home': 'https://github.com/flaskfarm/trans', + + ## 생략가능 + 'more': 'https://raw.githubusercontent.com/flaskfarm/flaskfarm/main/README.md', + + 'require_plugin': "", + 'require_os' : "", + 'need_decrypt_code': False, + 'need_filesize_check': False, + 'filesize': 0, + +setting = { + 'title': "번역", + 'version': '1.0.0.0', + 'package_name' : 'trans', + 'developer': 'TEAM', + 'description': '번역 관련 설정 및 API 제공', + 'home': 'https://github.com/flaskfarm/trans', + 'more': 'https://raw.githubusercontent.com/flaskfarm/flaskfarm/main/README.md', + + 'require_plugin': "", + 'require_os' : "", + 'need_decrypt_code': False, + 'need_filesize_check': False, + 'filesize': 0, + + 'filepath' : __file__, + 'use_db': True, + 'use_default_setting': True, + 'home_module': 'base', + 'menu': __menu, + 'setting_menu': None, + 'use_default_route': True, +} + + + +title: "번역" +version: "1.0.0.0" +package_name: "trans" +developer: "TEAM" +description': "번역 관련 설정 및 API 제공" +home: "https://github.com/flaskfarm/trans" +more: "https://raw.githubusercontent.com/flaskfarm/flaskfarm/main/README.md" + +require_plugin: "" +require_os' : "" +need_decrypt_code: false +need_filesize_check': false +filesize: 0