Skip to main content

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 username
  • password: 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 generate
  • content: 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 hostname
  • ip: Instance IP address
  • port: Instance port number
  • start_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

License

MIT

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

aidesk-0.3.0.tar.gz (24.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

aidesk-0.3.0-py3-none-any.whl (27.5 kB view details)

Uploaded Python 3

File details

Details for the file aidesk-0.3.0.tar.gz.

File metadata

  • Download URL: aidesk-0.3.0.tar.gz
  • Upload date:
  • Size: 24.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.9.13

File hashes

Hashes for aidesk-0.3.0.tar.gz
Algorithm Hash digest
SHA256 7863e11d970f3f16040375682bd2e266a93d809f56e13f8b4623a3c6d253a408
MD5 8c31ab54b14900bef3ad84ec1f1e1544
BLAKE2b-256 55eee1503d9493621514cc99814771a04d391365d736f85a5b376a79921cf931

See more details on using hashes here.

File details

Details for the file aidesk-0.3.0-py3-none-any.whl.

File metadata

  • Download URL: aidesk-0.3.0-py3-none-any.whl
  • Upload date:
  • Size: 27.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.9.13

File hashes

Hashes for aidesk-0.3.0-py3-none-any.whl
Algorithm Hash digest
SHA256 098f2e1064deed158385c2a5f0d51d234d206712c8ea7cbbd7f33312f7b532b7
MD5 48c2d471dd22113d77ade304b3aefaaf
BLAKE2b-256 79d308617af33823e175bda1ffab46536bd413c5506a29f64ad7476621f389b2

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page