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.2rc0.tar.gz (24.1 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.2rc0-py3-none-any.whl (26.3 kB view details)

Uploaded Python 3

File details

Details for the file aidesk-0.2rc0.tar.gz.

File metadata

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

File hashes

Hashes for aidesk-0.2rc0.tar.gz
Algorithm Hash digest
SHA256 9013368c40009d00b0c8579d2025300a7b9f25caa8090e052a95516a291393f7
MD5 1f84460c6266c633fce3e6be01f8b27e
BLAKE2b-256 a30a13aa5912987fd0ba3d3dc8121f286816d835a074225c0d5bea03e76cab88

See more details on using hashes here.

File details

Details for the file aidesk-0.2rc0-py3-none-any.whl.

File metadata

  • Download URL: aidesk-0.2rc0-py3-none-any.whl
  • Upload date:
  • Size: 26.3 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.2rc0-py3-none-any.whl
Algorithm Hash digest
SHA256 0267bb8c058a7583464369f1f4f7c2fe0591d9d17d0a4b0aa94ed9aac53bc6c5
MD5 a1c2ba9eef8ad039f706c5756b7c1801
BLAKE2b-256 1d2ceecdddb59645243fea25e9d51dcc2e7e39f4a591ca15d7c53b0ae790c2f1

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