add sens arg

This commit is contained in:
Autumn.home 2024-07-19 22:48:49 +08:00
parent cb9cb2b047
commit 8ee844817b
9 changed files with 47 additions and 5 deletions

View File

@ -98,6 +98,17 @@ WX:
![](docs/images/project-cn.png) ![](docs/images/project-cn.png)
## 项目资产聚合
### 面板-概况
![](docs/images/project-dsh.png)
### 子域名
![](docs/images/project-subdomain.png)
### 端口
![](docs/images/project-port.png)
### 服务
![](docs/images/project-server.png)
## 任务 ## 任务
![](docs/images/task-cn.png) ![](docs/images/task-cn.png)

View File

@ -147,7 +147,8 @@ async def get_page_monitoring_time():
async for db in get_mongo_db(): async for db in get_mongo_db():
result = await db.ScheduledTasks.find_one({"id": "page_monitoring"}) result = await db.ScheduledTasks.find_one({"id": "page_monitoring"})
time = result['hour'] time = result['hour']
return time flag = result['state']
return time, flag
async def create_page_monitoring_task(): async def create_page_monitoring_task():

View File

@ -4,7 +4,7 @@
# @version: # @version:
from datetime import datetime from datetime import datetime
from bson import ObjectId from bson import ObjectId, SON
from fastapi import APIRouter, Depends from fastapi import APIRouter, Depends
from pymongo import DESCENDING from pymongo import DESCENDING
@ -305,6 +305,35 @@ async def get_sensitive_result_data2(request_data: dict, db=Depends(get_mongo_db
return {"message": "error","code":500} return {"message": "error","code":500}
@router.post("/sensitive/result/names")
async def get_sensitive_result_names(request_data: dict, db=Depends(get_mongo_db), _: dict = Depends(verify_token)):
query = await get_search_query("sens", request_data)
if query == "":
return {"message": "Search condition parsing error", "code": 500}
pipeline = [
{
"$match": query
},
{"$group": {"_id": "$sid", "count": {"$sum": 1}, "color": {"$first": "$color"}}},
{"$sort": SON([("count", -1)])},
{
"$project": {
"name": "$_id",
"count": 1,
"_id": 0,
"color": 1
}
}
]
result = await db['SensitiveResult'].aggregate(pipeline).to_list(None)
return {
"code": 200,
"data": {
'list': result
}
}
@router.post("/sensitive/result/body") @router.post("/sensitive/result/body")
async def get_sensitive_result_body_rules(request_data: dict, db=Depends(get_mongo_db), _: dict = Depends(verify_token)): async def get_sensitive_result_body_rules(request_data: dict, db=Depends(get_mongo_db), _: dict = Depends(verify_token)):

View File

@ -404,7 +404,7 @@ async def get_search_query(name, request_data):
if query == "" or query is None: if query == "" or query is None:
return "" return ""
query = query[0] query = query[0]
filter_key = {'app':'app','color': 'color', 'status': 'status', 'level': 'level', 'type': 'type', 'project': 'project', 'port': 'port', 'protocol': ['protocol', 'type'], 'icon': 'faviconmmh3', "statuscode":"statuscode"} filter_key = {'app':'app','color': 'color', 'status': 'status', 'level': 'level', 'type': 'type', 'project': 'project', 'port': 'port', 'protocol': ['protocol', 'type'], 'icon': 'faviconmmh3', "statuscode": "statuscode", "sname": "sid"}
filter = request_data.get("filter", {}) filter = request_data.get("filter", {})
if filter: if filter:
query["$and"] = [] query["$and"] = []

BIN
docs/images/project-dsh.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 187 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 70 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 54 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 114 KiB

View File

@ -114,8 +114,9 @@ async def startup_db_client():
find_page_m = True find_page_m = True
if not find_page_m: if not find_page_m:
from api.scheduled_tasks import get_page_monitoring_time, create_page_monitoring_task from api.scheduled_tasks import get_page_monitoring_time, create_page_monitoring_task
pat = await get_page_monitoring_time() pat, flag = await get_page_monitoring_time()
scheduler.add_job(create_page_monitoring_task, 'interval', hours=pat, id='page_monitoring', jobstore='mongo') if flag:
scheduler.add_job(create_page_monitoring_task, 'interval', hours=pat, id='page_monitoring', jobstore='mongo')
asyncio.create_task(subscribe_log_channel()) asyncio.create_task(subscribe_log_channel())