67 Commits

Author SHA1 Message Date
YueGuobin
2df05dff6e feat(api): nest chat endpoints under projects and refactor dependencies
- Change chat router prefix from `/chat` to `/projects/{project_id}/chat`
- Add `dep_project` dependency to inject Project instance into endpoints
- Remove manual project validation in `stream_chat` and use dependency instead
- Add placeholder `list_sessions` endpoint for future session listing
- Update `get_history` endpoint to use project dependency and adjust path
- Improve code organization and error handling for project retrieval
2026-03-04 12:43:36 +08:00
YueGuobin
73de248381 feat(copilot): add user-aware LLM calls and project cleanup
- Modified `llm_call` and `generate_title` functions to accept `config` parameter, extracting `user_id` and `jwt_token` for per-user LLM configuration and API authentication
- Updated `create_base_model_with_tools` and `create_title_model` calls to pass user authentication details
- Added `jwt_token` to state for tool usage in GNS3 API calls
- Integrated chat router into controller API routes under `/chat` endpoint
- Implemented `_cleanup_copilot_agent` method in `Project` class to remove AgentService resources upon project closure, preventing resource leaks
- Enhanced error handling in agent cleanup to avoid interrupting project close operations
2026-03-04 12:26:19 +08:00
YueGuobin
f4723cd083 docs: restructure LLM model configs API documentation for nested config object
Update API documentation to reflect new nested `config` object structure in LLM model configurations endpoints. The response format now encapsulates provider-specific fields (provider, base_url, model, temperature, api_key, max_tokens) within a `config` object, while moving ownership metadata (user_id, group_id, is_default, version, created_at, updated_at) to the top level. This aligns the user-facing endpoints with the group configuration structure and improves API consistency.
2026-03-03 22:47:36 +08:00
YueGuobin
176b39145b docs: update LLM model configs API documentation for group endpoints
- Add note clarifying that GET endpoints for groups return the same structure as user endpoints
- Document LLMModelConfigListResponse schema with default configuration selection logic
- Add comprehensive example for GET group configurations endpoint
- Update endpoint numbering to accommodate new group endpoints
- Ensure consistency between user and group API documentation
2026-03-03 22:39:38 +08:00
YueGuobin
d42fff49a5 feat(docs): enhance LLM model configs API documentation with schema updates
- Add `model_type` field to database schema with supported values (text, vision, stt, tts, multimodal, embedding, reranking, other)
- Add `name` field as table-level column for indexing and filtering
- Add reserved JSONB fields for future extensibility
- Update API request/response schemas to include `model_type` and `name` fields
- Add new `LLMModelConfigWithSource` schema for detailed configuration responses
- Update usage examples to reflect new required fields
- Improve database constraints and indexing documentation
2026-03-03 17:54:30 +08:00
YueGuobin
161b7feb01 feat(api): add optimistic locking to LLM model config updates
- Include `version` field in all LLM model config response schemas
- Add `expected_version` parameter to update endpoints for optimistic locking
- Handle concurrent modification errors with HTTP 409 Conflict status
- Update both user and group config endpoints consistently
2026-03-03 16:59:12 +08:00
YueGuobin
bbd34f1f67 feat(api): add LLM model configurations endpoint and schemas
- Introduce new API route `/access` for managing LLM model configurations
- Add LLMModelConfig model to database models
- Include comprehensive schemas for LLM model config CRUD operations
- Register new router with tags for LLM Model Configurations
2026-03-03 16:34:48 +08:00
grossmj
bdcb6445c7
Use lists for tags instead of dicts 2026-02-23 23:26:42 +08:00
Guobin Yue
66f32cecf2
Merge branch 'GNS3:3.0' into 3.0 2026-02-23 01:37:05 +08:00
YueGuobin
a3616e6d33 feat(api): add tag filtering to nodes and templates endpoints
- Add optional `tags` query parameter to `/nodes` and `/templates` endpoints
- Support filtering by tags in format "key:value" with multiple tags ANDed together
- Example: `?tags=vendor:cisco&tags=model:7200` filters nodes/templates with both tags
- Maintain backward compatibility for existing API usage without tags parameter
2026-02-22 22:52:28 +08:00
grossmj
be4b87e8cd
Update project schema and fix tests 2026-02-22 18:13:08 +08:00
Felix Schulz
8ab34924b5 Add 'created_by' field to track project creator 2026-02-21 22:15:21 +01:00
YueGuobin
56ece7ce88 Add vendor, model and netmiko_device_type fields to templates
Add three new optional fields to the template schema:
- vendor: Device vendor (e.g., Cisco, Juniper, Huawei)
- model: Device model (e.g., ISR4451-X, MX204, NE40E)
- netmiko_device_type: Netmiko device type for automation (e.g., cisco_ios, juniper_junos, huawei)

These fields enable AI/LLM integration to determine the appropriate
Netmiko device type when automating network device configuration.

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-02-20 23:38:00 +08:00
grossmj
5019167098
Fix interface information API endpoint for Cloud/NAT devices 2025-04-16 15:26:56 +07:00
Mark Paronyan
bab173ee52
feat(get_iface): add type information in response 2025-03-23 14:28:27 +00:00
Mark Paronyan
ea2856289a
feat: add endpoint to get iface/udp tunnel from links with Cloud,Nat 2025-03-23 13:46:27 +00:00
grossmj
a7f2b1fddc
Require minimum 8 characters for passwords 2025-02-23 12:05:19 +10:00
grossmj
9122cab6c1
Update schemas to add constraints for values like ram, nvram etc. 2025-02-04 10:39:55 +10:00
grossmj
8c7c17b889
Upgrade dependencies and fix Pydantic warnings 2024-10-31 17:09:52 +10:00
grossmj
a1666dd247
Fix MAC address support for Docker containers 2024-09-18 18:02:35 +07:00
grossmj
990dabb7e4
Do not allow to create a builtin template using the API. 2024-05-17 00:05:25 +07:00
grossmj
998898a471
Fix CPU fractional values for Docker VMs. 2024-04-03 17:15:10 +07:00
grossmj
5475eedce7 Add igb Qemu adapter 2023-10-24 18:33:26 +10:00
grossmj
722512d851 Remove model validator. Fixes https://github.com/GNS3/gns3-gui/issues/3522
Default port name and port segment size are already set in the code when a new node is created.
2023-10-15 11:16:05 +10:00
grossmj
d53ef175f8 DB and API for resource pools 2023-09-07 17:31:11 +07:00
grossmj
0077fd98aa Add required privileges to all endpoints 2023-09-02 17:54:24 +07:00
grossmj
60ce1172e0 Use an ACL table to check for privileges 2023-08-27 18:20:42 +10:00
grossmj
9c456532d0 Pydantic v2 migration 2023-08-04 18:20:06 +10:00
grossmj
9357ac6035 Add builtin field in Appliance model 2023-07-03 21:02:17 +10:00
grossmj
40c265152b Add UEFI boot mode option for Qemu VMs 2023-06-21 17:56:34 +09:30
grossmj
72e3d8f0c1 Fix tests after merge 2023-01-05 12:57:00 +08:00
grossmj
31ae70894e Fix enum use in schemas 2022-07-26 23:17:39 +02:00
grossmj
bfbac2e93a Use generic symbol names 2022-07-25 12:33:40 +02:00
grossmj
b7f4a4cbda Fix VMware VM addition 2022-07-25 11:10:01 +02:00
grossmj
4a1da00601 Make 'vendor_url' and 'maintainer_email' optional for template validation. 2022-07-12 11:55:18 +02:00
grossmj
7d49b80e6b Add controller endpoints to get VirtualBox VMs, VMware VMs and Docker images 2022-06-07 00:38:59 +08:00
grossmj
8a964390f8 Add zstandard compression support for project export 2022-05-31 18:08:34 +07:00
grossmj
9b39bfb845 Detect image type instead of requesting it from user 2022-03-20 16:20:17 +10:00
grossmj
10fdd8fcf4 Add connect endpoint for computes
Param to connect to compute after creation
Report compute unauthorized HTTP errors to client
2021-12-24 13:05:39 +10:30
grossmj
ab4d964d69 Do not require the local server param to open a .gns3 file. Fixes https://github.com/GNS3/gns3-gui/issues/2421 Ref #1460 2021-12-10 15:52:57 +10:30
grossmj
25466a9958 Allow empty compute_id. Ref #1657 2021-11-24 17:25:55 +10:30
grossmj
7ce5e19a6e Fix issue when updating a template 2021-10-23 16:23:19 +10:30
Jeremy Grossmann
16ac9358df
Merge pull request #1986 from GNS3/remove-qemu-legacy-networking
Remove Qemu legacy networking support
2021-10-20 15:44:31 +10:30
grossmj
eab4c8c770 Remove Qemu legacy networking support 2021-10-19 15:32:27 +10:30
grossmj
a31e5615a4 Add a custom version to an appliance 2021-10-19 15:15:10 +10:30
grossmj
be473aaaf7 Remove from __future__ import annotations 2021-10-18 22:16:57 +10:30
grossmj
88d98cf02e Fix tests and workaround issue with flake8 2021-10-18 22:12:10 +10:30
grossmj
01da25a7c7 Fix appliance validation with Pydantic 2021-10-18 21:53:29 +10:30
grossmj
13ff7df9fa Validate appliance files with Pydantic 2021-10-18 21:46:50 +10:30
grossmj
bc36d95060 Finalize image management refactoring and auto install appliance if possible 2021-10-10 17:35:11 +10:30