feat(properties): prepare property commands before execution
Build and Push Docker Container / build-and-push (push) Successful in 4m28s
Build and Push Docker Container / build-and-push (push) Successful in 4m28s
- Create missing note files before running property:set. - Default date-only datetime values to midnight. - Keep property names out of path authorization checks. - Split policy, vault, daily note, and command target helpers. - Split n8n node args, description, output, and API response helpers. - Split API tests by auth, command, daily note, and property behavior. - Bump API and n8n node versions.
This commit is contained in:
@@ -4,12 +4,20 @@ from pathlib import Path
|
||||
from starlette.responses import JSONResponse
|
||||
|
||||
from app.config import CLI_BIN
|
||||
from app.property_commands import prepare_property_args
|
||||
|
||||
def error(status_code:int, detail:str) -> JSONResponse:
|
||||
return JSONResponse({"detail": detail}, status_code=status_code)
|
||||
|
||||
async def execute_command(args:list[str], cwd:Path, stdin:str|None, timeout:float) -> JSONResponse:
|
||||
command_id = str(uuid.uuid4())
|
||||
try:
|
||||
args = prepare_property_args(args, cwd)
|
||||
except PermissionError as exc:
|
||||
return error(403, str(exc))
|
||||
except OSError as exc:
|
||||
return error(500, f"failed to prepare property command: {exc}")
|
||||
|
||||
command = [CLI_BIN, *args]
|
||||
started = time.perf_counter()
|
||||
|
||||
|
||||
Reference in New Issue
Block a user