A simple web service with file operations and instance management
Project description
aidesk
A simple web service with file operations, authentication and instance management.
Features
- Web service based on Python's built-in
http.server - User authentication (login/logout)
- API endpoint to generate files from text content
- API endpoint to upload files
- Instance registration and management
- CLI to start the service with custom host and port
- Web interface for API documentation and instance management
Installation
pip install aidesk
Usage
Start the web service:
Default host (localhost) and port (8000)
aidesk
Custom host and port
aidesk --host 0.0.0.0 --port 8080
Debug mode
aidesk --debug
Once the service is running, you can access the API documentation at http://localhost:8000
Default credentials:
- Username: admin
- Password: admin
API
Authentication
POST /api/login
Parameters:
username: Your usernamepassword: Your password
Example:
curl -X POST http://localhost:8000/api/login
-d "username=admin&password=admin"
POST /api/logout
Example:
curl -X POST http://localhost:8000/api/logout
-b "session_id=your_session_id"
File Operations
POST /api/generate-file (Requires authentication)
Parameters:
filename: Name of the file to generatecontent: Multi-line text content for the file
Example:
curl -X POST http://localhost:8000/api/generate-file
-b "session_id=your_session_id"
-d "filename=example.txt&content=First line%0ASecond line%0AThird line"
POST /api/upload-file (Requires authentication)
Parameters:
- File data as multipart/form-data
Example:
curl -X POST http://localhost:8000/api/upload-file
-b "session_id=your_session_id"
-F "file=@localfile.txt"
Instance Management
POST /api/instances/register (No authentication required)
Registers another aidesk instance with this server.
Parameters:
hostname: Instance hostnameip: Instance IP addressport: Instance port numberstart_time: Instance start time (ISO format)
Example:
curl -X POST http://localhost:8000/api/instances/register
-d "hostname=worker1&ip=192.168.1.100&port=8001&start_time=$(date -Iseconds)"
POST /api/instances/ping (No authentication required)
Updates instance status (heartbeat).
Parameters:
instance_id: ID of the instance (format: ip:port)
Example:
curl -X POST http://localhost:8000/api/instances/ping
-d "instance_id=192.168.1.100:8001"
GET /api/instances (Requires authentication)
Gets all registered instances.
Example:
curl -X GET http://localhost:8000/api/instances
-b "session_id=your_session_id"
DELETE /api/instances/{instance_id} (Requires authentication)
Removes a registered instance.
Example:
curl -X DELETE http://localhost:8000/api/instances/192.168.1.100:8001
-b "session_id=your_session_id"
Web Interface
- Home/API Documentation: http://localhost:8000
- Login: http://localhost:8000/login
- Instance Management: http://localhost:8000/manage-instances
License
MIT
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file aidesk-0.2b0.tar.gz.
File metadata
- Download URL: aidesk-0.2b0.tar.gz
- Upload date:
- Size: 23.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.9.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
77ae6aed9d08382a91174bb7564071bd4721197b90e9e6314bc8749271d25986
|
|
| MD5 |
4b88aece695baf5dbb79ef30eedebcdb
|
|
| BLAKE2b-256 |
d1248357b21ec0c79b20b3f4eb2073fc69f8931a6c621ae1c7bdeeb440a8a94a
|
File details
Details for the file aidesk-0.2b0-py3-none-any.whl.
File metadata
- Download URL: aidesk-0.2b0-py3-none-any.whl
- Upload date:
- Size: 26.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.9.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
de6965e0b3cb979588388e18ca4f59d739057b3633d29ea6430e0102c1f9e88c
|
|
| MD5 |
97e14132b62a568da3d4f7b4466ce1b3
|
|
| BLAKE2b-256 |
d4525e072760f96a625ac186c7e1803a0097e53eb4b1154e99e1f2c6ebf00b36
|