diff --git a/Dockerfile b/Dockerfile index 3d933cbd2a5b5ac98ac26da68ef546a48c1fd172..8f440d671a953984e10c9f63553fdb851df2e9c7 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,4 +1,4 @@ -FROM node:18.14.1 as Builder +FROM node:18.20.1 as Builder RUN mkdir -p /home/quick-isuue/web WORKDIR /home/quick-isuue/web @@ -13,7 +13,7 @@ RUN ls /home/quick-isuue/web FROM swr.cn-north-4.myhuaweicloud.com/opensourceway/openeuler/nginx:1.24.0-22.03-lts-sp1 as NginxBuilder -FROM swr.cn-north-4.myhuaweicloud.com/opensourceway/website/openeuler:22.03-lts-sp1-latest +FROM openeuler/openeuler:22.03-lts-sp1 ENV NGINX_CONFIG_FILE /etc/nginx/nginx.conf ENV NGINX_CONFIG_PATH /etc/nginx/ diff --git a/components.d.ts b/components.d.ts index 0c5defc8d4497dbacf521db7e4afa52be54e103c..0af5c053aa2ddd287c35ec14d289b5ece44d71e3 100644 --- a/components.d.ts +++ b/components.d.ts @@ -13,10 +13,11 @@ declare module 'vue' { AppHeader: typeof import('./src/components/AppHeader.vue')['default'] AppIssue: typeof import('./src/components/AppIssue.vue')['default'] AppPull: typeof import('./src/components/AppPull.vue')['default'] - AppSlideVerify: typeof import('./src/components/AppSlideVerify.vue')['default'] + AppVerify: typeof import('./src/components/AppVerify.vue')['default'] DocAnchor: typeof import('./src/components/DocAnchor.vue')['default'] ElCard: typeof import('element-plus/es')['ElCard'] ElCheckbox: typeof import('element-plus/es')['ElCheckbox'] + ElCheckboxGroup: typeof import('element-plus/es')['ElCheckboxGroup'] ElCollapse: typeof import('element-plus/es')['ElCollapse'] ElCollapseItem: typeof import('element-plus/es')['ElCollapseItem'] ElDialog: typeof import('element-plus/es')['ElDialog'] @@ -38,7 +39,6 @@ declare module 'vue' { ElTabPane: typeof import('element-plus/es')['ElTabPane'] ElTabs: typeof import('element-plus/es')['ElTabs'] ElTree: typeof import('element-plus/es')['ElTree'] - HeaderNav: typeof import('./src/components/HeaderNav.vue')['default'] ONav: typeof import('./src/components/ONav.vue')['default'] RouterLink: typeof import('vue-router')['RouterLink'] RouterView: typeof import('vue-router')['RouterView'] diff --git a/deploy/entrypoint.sh b/deploy/entrypoint.sh index 9679c15af0bad924ec3aa12d32c40bcf24917ee7..d72cb306899d5bffd224ba119f20584b3ddcada1 100644 --- a/deploy/entrypoint.sh +++ b/deploy/entrypoint.sh @@ -1,4 +1,4 @@ #!/bin/bash bash /etc/nginx/monitor.sh $DET_URL $DST_PATH & -/usr/share/nginx/sbin/nginx -g 'daemon off; \ No newline at end of file +/usr/share/nginx/sbin/nginx -g 'daemon off;' \ No newline at end of file diff --git a/deploy/nginx/nginx.conf b/deploy/nginx/nginx.conf index 852f9bf3ad7ef9203d7d99fa1203a307594db543..b8df0b800a9a0fbd63a2dda15d90fa8455589f03 100644 --- a/deploy/nginx/nginx.conf +++ b/deploy/nginx/nginx.conf @@ -42,8 +42,11 @@ http { proxy_hide_header X-Powered-By; proxy_request_buffering off; - limit_conn_zone $binary_remote_addr zone=limitperip:10m; - limit_req_zone $binary_remote_addr zone=ratelimit:10m rate=1000r/s; + real_ip_header X-Real-IP; + + limit_conn_zone $http_x_real_ip zone=limitperip:10m; + limit_req_zone $http_x_real_ip zone=frontendratelimit:10m rate=1000r/s; + limit_req_zone $http_x_real_ip zone=ratelimit:10m rate=1000r/s; gzip on; gzip_min_length 1k; @@ -96,15 +99,17 @@ http { } location / { + limit_req zone=frontendratelimit burst=2 nodelay; proxy_set_header X-Forwarded-For $http_x_real_ip; proxy_set_header Host $host; location /assets { + limit_req zone=frontendratelimit burst=2 nodelay; add_header X-XSS-Protection "1; mode=block"; add_header X-Frame-Options DENY; add_header X-Content-Type-Options nosniff; add_header Strict-Transport-Security "max-age=31536000; includeSubDomains"; - add_header Content-Security-Policy "script-src 'self' 'unsafe-inline' 'unsafe-eval'; object-src 'none'; frame-src 'none'"; + add_header Content-Security-Policy "script-src 'self' 'unsafe-inline' 'unsafe-eval' ; object-src 'none'; frame-src 'none'"; add_header Cache-Control "public,max-age=1209600"; } @@ -117,12 +122,14 @@ http { } location /api-dsapi/ { + limit_req zone=ratelimit burst=2 nodelay; proxy_set_header X-Forwarded-For $http_x_real_ip; proxy_pass https://dsapi.osinfra.cn/; } location /api-omapi/ { + limit_req zone=ratelimit burst=2 nodelay; proxy_set_header X-Forwarded-For $http_x_real_ip; proxy_pass https://omapi.osinfra.cn/; @@ -130,9 +137,10 @@ http { } location /api-issues/ { + limit_req zone=ratelimit burst=20 nodelay; proxy_set_header X-Forwarded-For $http_x_real_ip; - proxy_pass https://quickissue-server.test.osinfra.cn/; + proxy_pass https://ipb.osinfra.cn/; } diff --git a/opendesign/button/src/button-types.ts b/opendesign/button/src/button-types.ts index 4deb21d56ab96f6b5a472b8f481531085fd7ed7f..de428912b68fdffa012aa8b5af43363de270580e 100644 --- a/opendesign/button/src/button-types.ts +++ b/opendesign/button/src/button-types.ts @@ -3,7 +3,6 @@ import { SizeType } from '../../_utils/common'; type ButtonType = 'outline' | 'primary' | 'secondary' | 'text'; // TODO:status颜色规范待补充 -// type ButtonStatus = 'normal' | 'success' | 'warning' | 'danger'; type ButtonStatus = 'normal'; type ButtonNativeType = 'button' | 'submit' | 'reset'; diff --git a/opendesign/dialog/ODialog.vue b/opendesign/dialog/ODialog.vue index dddf0341f5b3d5396c1bfa84a2f2698fc546b6e5..9cdfff21235c6003742fa76b8d82d8f9206ec83c 100644 --- a/opendesign/dialog/ODialog.vue +++ b/opendesign/dialog/ODialog.vue @@ -30,8 +30,5 @@ const modalClassNames = computed(() => { diff --git a/opendesign/dropdown/ODropdown.vue b/opendesign/dropdown/ODropdown.vue index ed9f557b043488ed973fdae5392879e132571f3e..52cad615a733e7e50d7d7629098ebd8d4c00a310 100644 --- a/opendesign/dropdown/ODropdown.vue +++ b/opendesign/dropdown/ODropdown.vue @@ -106,7 +106,7 @@ onUnmounted(() => { margin-bottom: 5px; background-color: var(--o-color-bg2); width: 100%; - z-index: 1; + z-index: 2; .o-search { padding: 4px 8px; diff --git a/opendesign/search/OSearch.vue b/opendesign/search/OSearch.vue index 731ba446571802ab728816c5ba9240780ae01da3..cb07e8a5dbce07608e07834392098115a68dcb9b 100644 --- a/opendesign/search/OSearch.vue +++ b/opendesign/search/OSearch.vue @@ -44,7 +44,6 @@ const attrs = useAttrs(); border-radius: 0; padding: 1px 8px; background-color: var(--o-search-color-bg); - // box-shadow: var(--o-search-shadow); .el-input__prefix-inner { font-size: var(--o-font-size-h5); diff --git a/opendesign/select/OOption.vue b/opendesign/select/OOption.vue index 96d713b16b74cf2a70710a22bde165db4793965a..4682413d9a03ff40f041bce93680337b206c8088 100644 --- a/opendesign/select/OOption.vue +++ b/opendesign/select/OOption.vue @@ -1,6 +1,4 @@