GUI
- Set default symbol theme to "Affinity-square-blue"
- Fix creating a custom Ethernet switch template
- Update decorative symbols (for Wizards etc.)
- Use generic symbol names
- Set raw image param when uploading an image from the appliance wizard
- Checks for valid hostname on server side for Dynamips, IOU, Qemu and Docker nodes
- Support compression levels
- Add zstandard compression
- Remove Qemu binary requirement
- Use controller API to list images
- Use new API endpoints to create/resize Qemu disk images.
- Image management dialog
- Drop Python 3.6 support and require Python >= 3.7
- Improvements when connecting and updating computes
- Use current directory when searching for images. Fixes #3198
- Refactor server settings and wizard
- Disable local server and GNS3 VM preferences
- Image uploading to controller and project export
- HTTP client refactoring
- Handle empty compute_id in preferences. Ref #3265
- Remove direct upload to compute
- Send JWT token in query string when connecting to websocket. Ref GNS3/gns3-server#1992
- Remove traceng code
- Option to delete orphaned image files from disk when template is removed. Fixes #3249
- Remove Qemu legacy networking code
- Isolate and unisolate support. Fixes #3190
- Support authentication using JWT tokens
- Providing the path to create a project is now deprecated.
- Client to use version 3 of the API.
- Change Qemu disk descriptions. Fixes #3035
- Edit only text mode config files
- Hide config import/export when configFiles attribute is empty
- Qemu disk interfaces must be set to "none" by default. Ref #3035
- Do not allow image to be configured on Qemu VM secondary slave disk if create config disk option is enabled.
- Add explicit option to automatically create or not the config disk. Off by default.
- Auxiliary console support for Qemu. Ref #2873 Improvements for auxiliary console support for Docker and Dynamips.
- Support to reset all console connections. Ref GNS3/gns3-server#1619
- Support to reset links. Fixes GNS3/gns3-server#1620
- Fix bug when recent files cannot be seen in the new project dialog.
- Wait for the controller to be online before allowing actions like creating or opening a project. Fixes #2907
- Show progress dialog immediately when connecting to server. Ref #2907
- QEMU config disk - enable QEMU config import/export
- Add total RAM, CPUs and disk size to servers summary as well as disk usage in percent. Fixes GNS3/gns3-server#1532
- Resource constraints for Docker VMs.
- Support for "usage" for "Cloud" nodes. Fixes #2887 Allow "usage" for all builtin nodes (not exposed in Ui).
- Markdown support in project Readme. Fixes #2550 #2289 Allow project README to be edited from "File->Edit project". Fixes #2829
Server
- Bundle gns3-web-ui v3.0.0a1
- Use default symbol theme if none is provided when loading appliances
- Allow default symbol theme to be configured in config file
- Optionally allow Qemu raw images
- Ignore image detection for IOU user libraries in image directory
- Don't show optional token param in API docs
- Fix check for 32-bit in ELF header
- Checks for valid hostname on server side for Dynamips, IOU, Qemu and Docker nodes
- Only check files (not directories) when looking for new images on file system.
- Support user defined loader/libraries to run IOU
- Make 'vendor_url' and 'maintainer_email' optional for template validation.
- Allow auth token to be passed as a URL param
- HTTP middleware create issues when streaming project archive
- Add zstandard compression support for project export
- Make sure that the temporary image file is removed after uploading an image
- Do not cache to md5sum file in some situations
- Detect new images added to the default image directory. * Images can be present before the server starts or while it is running * Images are recorded in the database
- Support delete Qemu disk image from API Return the real disk image name in the 'hdx_disk_image_backed' property for Qemu VMs
- Handle creating Qemu disk images and resizing
- Finish to clean up local setting usage. Ref #1460
- "Local" command line parameter is only for stopping a server that has been started by the desktop GUI
- Fix AsyncSession handling after breaking changes in FastAPI 0.74.0 See https://github.com/tiangolo/fastapi/releases/tag/0.74.0 for details.
- Detect image type instead of requesting it from user
- Drop Python 3.6 support and require Python >= 3.7
- Drop Windows support
- Add connect endpoint for computes Param to connect to compute after creation Report compute unauthorized HTTP errors to client
- Replace CORS origins by origin regex
- Change default config settings
- Update Docker image for tests
- Fix calls to static methods in server.py
- Do not require the local server param to open a .gns3 file. Fixes #2421 Ref #1460
- Do not automatically install appliance after uploading image
- Ignore OSError when closing websocket
- Allow empty compute_id. Ref #1657
- Secure controller to compute communication using HTTP basic authentication
- Secure websocket endpoints
- Fix issue when updating a template
- Allocate compute when compute_id is unset
- Return the current controller hostname/IP from any compute
- Remove Qemu legacy networking support
- Add a custom version to an appliance
- Appliance management refactoring: * Install an appliance based on selected version * Each template have unique name and version * Allow to download an appliance file
- Finalize image management refactoring and auto install appliance if possible
- Sqlite doesn't allow BigInteger to be used as an primary key with autoincrement
- Add isolate and unisolate endpoints. Ref #3190
- Small db tables adjustments
- Add index for "name" field in role table
- Allow images to be stored in subdirs and used by templates.
- Option to prune images when deleting template.
- Associate images when creating or updating a template.
- Add prune images endpoint. Use many-to-many relationship between images and templates.
- Check if user has the right to add a permission
- Only use the necessary HTTP methods for default permissions
- Add /permissions/prune to delete orphaned permissions
- Check a permission matches an existing route before it is allowed to be created.
- Remove busybox and copy system busybox in setup.py
- Save image size + start to automatic template creation based on image checksum.
- Upgrade dependencies
- Fix "-machine accel=tcg" check
- Allow logged in user to change some of its data. Administrators can lock users using the
is_active
field. - Symbols endpoints (except upload) don't require authentication.
- Update to the udhcpc wrapper script. Ref #1890
- Fix link style merge
- Start refactoring for images management
- Allow controller to be reloaded using the API. Fixes #1743
- Use a stock BusyBox for the Docker Integration
- Move "/{project_id}/templates/{template_id}" endpoint.
- Add last login info for users.
- Change RBAC field names from builtin to is_builtin
- Add user permissions + RBAC tests.
- Add description for user permission.
- Save/restore appliances Etag.
- Allow to set the initial super admin username / password in server config file. Ref #1857
- Require authentication for get_user_memberships endpoint.
- Change method to prevent forbidden directory traversal. Ref #1894
- Add user groups support.
- Add delete cascade on foreign keys for appliance table
- Enable SQL foreign key support for SQLite
- Add missing CORS origins.
- Show topology path when check topology schema fails.
- Protect controller notification endpoints. Ref #1888 (WebSocket endpoint is not secured, it takes an optional token).
- Use uuid5 to create new compute_id. Fixes #1641 #1887
- Protect the API and add alternative authentication endpoint.
- Secure users API and handle manual password recovery.
- Add default super admin account in controller db.
- Complete type annotations for API endpoints.
- Detect the app is exiting and avoid reconnecting to computes.
- Move schemas between compute and controller subpackages
- Remove traceng code.
- Move error responses to API routers.
- Wait for local compute to be started. Don't reconnect to local compute when server is being stopped.
- Rename ssl and auth configuration file settings. Add enable SSL config validator. Strict configuration file validation: any error will prevent the server to start. Core server logic moved to a Server class.
- Generate new config for each test. Fixes tests.
- Use Pydantic to validate the server config file.
- Add symbol dimensions endpoint and SSL support for packet capture with remote HTTPS server.
- Save computes to database
- Generate a new list in template schema defaults.
- Generate JWT secret key if none is configured in the config file. Change location of the database.
- User authentication with tests.
- Refactor tests and start work on database integration.
- Move endpoints to routes & preparations to use a database.
- Providing the path to create a project is now deprecated.
- Add back script to create a self-signed SSL certificate.
- Make sure all HTTP exceptions return JSON with a "message" field instead of "detail"
- Make Swagger Ui the default for API documentation
- Move to version 3 of the REST API. Rename packet capture endpoints.
- Use pydantic for data validation (instead of jsonschema) Fix/improve various pydantic schema models.
- Automate API documentation publishing.
- Publish API documentation generated by FastAPI.
- Overwrite uvicorn loggers.
- Do not automatically connect to local compute.
- Add HTTP client to reuse the aiohttp session where needed. Remove unnecessary aiohttp exceptions.
- Warn not to use the private compute API. Fixes #1593.
- Migrate PCAP streaming code to work with FastAPI.
- Refactor WebSocket console code to work with FastAPI. Fix endpoint routes.
- Use dependencies and group common HTTP responses in endpoints.
- Migration to FastAPI
- Prioritize the config disk over HD-D for Qemu VMs. Fixes #3036
- Create config disk property false by default for Qemu templates
- Set default disk interface type to "none". Fail-safe: use "ide" if an image is set but no interface type is configured. Use the HDA disk interface type if none has been configured for HDD.
- Add explicit option to automatically create or not the config disk. Off by default.
- Auxiliary console support for Qemu. Ref #2873 Improvements for auxiliary console support for Docker and Dynamips.
- Fix AUX console not allocated for Dynamips IOS routers.
- Disallow to rename a running node. Fixes #2499
- Support to reset all console connections. Ref GNS3/gns3-server#1619
- Support to reset links. Fixes GNS3/gns3-server#1620
- Add maxcpus property for Qemu VMs. Ref #1674
- QEMU config disk support
- Read folder structure correctly for custom symbols. Fixes #2856
- Add total RAM, CPUs and disk size to servers summary as well as disk usage in percent. Fixes GNS3/gns3-server#1532
- Resource constraints for Docker VMs.
- Update IOUtools. Ref #1627
- Use parent directory as working directory for project duplication and snapshots. Fixes #2909
- Support for "usage" for "Cloud" nodes. Fixes #2887 Allow "usage" for all builtin nodes (not exposed in Ui).