Skip to main content

CLI tool for elog management

Project description

elog-cli

Overview

elog-cli is a command-line interface for managing elog entries and authentication. It interacts with the elog management backend and supports OAuth2 authentication.

Installation

To install elog-cli, clone the repository and install the required dependencies:

git clone https://github.com/yourusername/elog-cli.git
cd elog-cli
pip install -r requirements.txt

Environment Variables

The following environment variables need to be set for the authentication manager to work:

  • ELOG_CLI_CODE_FLOW_SERVER_URL: The URL of the OAuth2 code flow server (e.g., https://<hostname>/device/code).
  • ELOG_CLI_TOKEN_URL: The URL to obtain the token (e.g., https://<hostname>/token).
  • ELOG_CLI_CLIENT_ID: The client ID for OAuth2 authentication.
  • ELOG_CLI_CLIENT_SECRET: The client secret for OAuth2 authentication.
  • ELOG_CLI_ENPOINT_URL: The base URL for the elog management backend client.

Development

This project uses a devcontainer to run a complete setup environment to permit developers to work on the CLI. The devcontainer starts the elog backend container so the developer can interact with the backend without using the official one.

  1. Download the mock user authentication data:

    wget http://elog:8080/v1/mock/users-auth -O user.json
    
  2. Generate the Python client from the OpenAPI specification:

    ~/.local/bin/openapi-python-client generate --url http://elog:8080/api-docs --output-path elog_management_backend_client --overwrite
    
  3. Ensure all required environment variables are set:

    export ENPOINT_URL="http://elog:8080"
    
  4. Run the application:

    python main.py login --login-type token
    

    and paste one of the tokens found in the above downloaded user.json.

Helper Executable

A helper executable elog-cli is provided to simplify running the CLI. This script loads environment variables from a .env file and locates the main.py script to execute it. elog-cli helper try to find the .env file into the same directory of the script, to modify this behaviour the ELOG_CLI_ENV_FILE_PATH environment variable that point to the specific .env file can be used.

Usage

  1. Ensure the .env file is present in the root directory of the project.
  2. Make the elog-cli script executable:
    chmod +x elog-cli
    
  3. Run the elog-cli script with the desired commands:
    ./elog-cli login --login-type token
    

Contributing

Contributions are welcome! Please fork the repository and submit a pull request.

patching on e;log generated rest api

patch class NewEntryWithAttachmentBody on file elog_cli/elog_management_backend_client/models/new_entry_with_attachment_body.py

    def to_multipart(self) -> dict[str, Any]:
        fields = [("entry", (None, json.dumps(self.entry.to_dict()).encode(), "application/json"))]

        # Include files
        if not isinstance(self.files, Unset):
            for files_item_data in self.files:
                # Convert each file to a tuple (fieldname, content, content_type)
                files_item = files_item_data.to_tuple()
                fields.append(("files", (files_item[0], files_item[1], files_item[2])))

        # Add additional properties
        for prop_name, prop in self.additional_properties.items():
            fields.append((prop_name, (None, str(prop).encode(), "text/plain")))

        return fields

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

elog_cli-0.1.34.tar.gz (60.9 kB view details)

Uploaded Source

Built Distribution

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

elog_cli-0.1.34-py3-none-any.whl (187.9 kB view details)

Uploaded Python 3

File details

Details for the file elog_cli-0.1.34.tar.gz.

File metadata

  • Download URL: elog_cli-0.1.34.tar.gz
  • Upload date:
  • Size: 60.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.10.16

File hashes

Hashes for elog_cli-0.1.34.tar.gz
Algorithm Hash digest
SHA256 4c48c647bcc14b8113d0cd19f4904abd1bfcc556ee3ba65d79b0d58cfc965d83
MD5 e48dc9801118ad2e7ce8e46e2c6a8366
BLAKE2b-256 dad5d64e7a0513a702f09c2fe9edb7d14bdb0105af7659c111bed94e2248a115

See more details on using hashes here.

File details

Details for the file elog_cli-0.1.34-py3-none-any.whl.

File metadata

  • Download URL: elog_cli-0.1.34-py3-none-any.whl
  • Upload date:
  • Size: 187.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.10.16

File hashes

Hashes for elog_cli-0.1.34-py3-none-any.whl
Algorithm Hash digest
SHA256 f54a80c16314c8b65d1d189491238c72124eda83e64cb3f3edd7b7dcaedeb876
MD5 68c12879f9480be546b9d543af023e50
BLAKE2b-256 3bfbd1d4b30dad100d11e3ffa4fc3b0108a97a4c8295b153a11f416ab256ca24

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