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.2b0.tar.gz (23.9 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.2b0-py3-none-any.whl (26.2 kB view details)

Uploaded Python 3

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

Hashes for aidesk-0.2b0.tar.gz
Algorithm Hash digest
SHA256 77ae6aed9d08382a91174bb7564071bd4721197b90e9e6314bc8749271d25986
MD5 4b88aece695baf5dbb79ef30eedebcdb
BLAKE2b-256 d1248357b21ec0c79b20b3f4eb2073fc69f8931a6c621ae1c7bdeeb440a8a94a

See more details on using hashes here.

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

Hashes for aidesk-0.2b0-py3-none-any.whl
Algorithm Hash digest
SHA256 de6965e0b3cb979588388e18ca4f59d739057b3633d29ea6430e0102c1f9e88c
MD5 97e14132b62a568da3d4f7b4466ce1b3
BLAKE2b-256 d4525e072760f96a625ac186c7e1803a0097e53eb4b1154e99e1f2c6ebf00b36

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