HaloPSA


NameHaloPSA JSON
Version 0.0.4 PyPI version JSON
download
home_pageNone
SummaryPython frontend for the HaloPSA API
upload_time2024-10-24 17:14:37
maintainerNone
docs_urlNone
authorNone
requires_python>=3.10
licenseNone
keywords halopsa halopsa api
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # HaloPSA API package for Python
EXTREMELY EARLY STAGE DEVELOPMENT.  READ CURRENTLY WORKING ENDPOINTS BEFORE TRYING ANYTHING!

For everyone's safety, none of the delete functions currently work.  This will be fixed/updated later.

# Installation and setup
## Requirements
1. Python (tested from Python 3.9 to 3.13 right now)
2. HaloPSA API key
3. Some basic understanding of the Halo API (will try to reduce this)

## Installing
```
pip install HaloPSA
```

## Getting an API key from Halo

1. Login to your Halo instance and go to HaloPSA API here: (your tenant).halopsa.com/config/integrations/api
0. Under Applications, click "View Applications"
0. Create a new application, and set type to Client ID and Secret (Service).
0. Name it something memorable, so it doesn't get deleted accidentally.
0. Set login type to Agent and select any agent (Make sure the account you pick has permissions to do the actions you will be using)
0. Make sure that "Active" is ticked and click save (Not: this shouldn't be needed, but I have lost my progress too many times to risk it)
0. Note your Client ID and Secret, you will need these later!
0. Click on the integration/Application you just created and go to Permissions.
0. Set permissions to either All or, if you know what you'll be using, enable just those permissions. (I recommend testing with All and then disabling permissions selectively, that way you know your connection is working before you start troubleshooting)
0. Click Save and move on to setting up your .env file.
## Setting up your .env file
1. Create a .env file with the following lines
```
HALO_CLIENT_ID = [Your Client ID]
HALO_SECRET = [Your Secret]
HALO_API_URL = https://[Your Halo Instance].halopsa.com/api
HALO_AUTH_URL = https://[Your Halo Instance].halopsa.com/auth/token
```
Now you're ready to go!

## Usage
Because of the way Halo is designed, anything you can do in the web interface, can be done from the API (and hopefully one day from this Python package too).

You can either import every endpoint

```
import HaloPSA.Halo
```
Or import only the ones you need (Full list below)
```
from HaloPSA.Halo import clients, invoices
```
I highly recommend you check the official Halo API documentation here: https://halo.halopsa.com/apidoc/info and for an even more in depth list, check out the swagger file here: https://halo.halopsa.com/api/swagger/index.html

Feel free to ask questions in the github issues area, I will try my best to answer.
# Endpoints
I am implementing these as I need them, and trying to keep them as consistent and easy to understand as possible.

## Partially implemented
### Assets
You Halo assets
#### Get
Working, has docstring.
### Search
Working, has docstring.
#### GetAll 
Working, but planning to remove this as you can just use search with no variables to get the same result.
#### Update (create)
Creates or updates one or more assets.  If ID is included, asset(s) will be updated.  If ID is not included, new asset(s) will be created.
- Working but requires "fields" to be sent in a specific JSON-like format.  Working on a better solution.  Has docstring.
#### Delete
Not implemented.
### Clients
You customers/clients
#### Get
Working, has docstring.
#### Search
Working, has docstring.
#### Update
Not implemented.
#### Delete
Not implemented.
### Recurring Invoices*
*Not in official documentation, found in Swagger + checking API calls from browser.
#### Get
Not implemented.
#### Search
Working, needs better docstring.
#### Update
Not implemented.
#### UpdateLines
Technically working, needs documentation and docstring.
#### Delete
Not implemented.
###Sites
#### Get
Not implemented.
#### Search
Implemented, has docstring.
#### Update
Not implemented.
#### Delete
Not implemented.


## Not implemented
### Planning to implement soon/Implemented in a previous version
- Currency
- Tickets
- Items
- Invoices
### Low Priority (if not listed, assume here)
- Actions
- Users

            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "HaloPSA",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.10",
    "maintainer_email": null,
    "keywords": "HaloPSA, HaloPSA API",
    "author": null,
    "author_email": "Fryan O <FryanO@proton.me>",
    "download_url": "https://files.pythonhosted.org/packages/00/0a/18a11ee3683c0dc19b80a034c61b4c92b40e2bbfb4e79807cfe7020d94a1/halopsa-0.0.4.tar.gz",
    "platform": null,
    "description": "# HaloPSA API package for Python\nEXTREMELY EARLY STAGE DEVELOPMENT.  READ CURRENTLY WORKING ENDPOINTS BEFORE TRYING ANYTHING!\n\nFor everyone's safety, none of the delete functions currently work.  This will be fixed/updated later.\n\n# Installation and setup\n## Requirements\n1. Python (tested from Python 3.9 to 3.13 right now)\n2. HaloPSA API key\n3. Some basic understanding of the Halo API (will try to reduce this)\n\n## Installing\n```\npip install HaloPSA\n```\n\n## Getting an API key from Halo\n\n1. Login to your Halo instance and go to HaloPSA API here: (your tenant).halopsa.com/config/integrations/api\n0. Under Applications, click \"View Applications\"\n0. Create a new application, and set type to Client ID and Secret (Service).\n0. Name it something memorable, so it doesn't get deleted accidentally.\n0. Set login type to Agent and select any agent (Make sure the account you pick has permissions to do the actions you will be using)\n0. Make sure that \"Active\" is ticked and click save (Not: this shouldn't be needed, but I have lost my progress too many times to risk it)\n0. Note your Client ID and Secret, you will need these later!\n0. Click on the integration/Application you just created and go to Permissions.\n0. Set permissions to either All or, if you know what you'll be using, enable just those permissions. (I recommend testing with All and then disabling permissions selectively, that way you know your connection is working before you start troubleshooting)\n0. Click Save and move on to setting up your .env file.\n## Setting up your .env file\n1. Create a .env file with the following lines\n```\nHALO_CLIENT_ID = [Your Client ID]\nHALO_SECRET = [Your Secret]\nHALO_API_URL = https://[Your Halo Instance].halopsa.com/api\nHALO_AUTH_URL = https://[Your Halo Instance].halopsa.com/auth/token\n```\nNow you're ready to go!\n\n## Usage\nBecause of the way Halo is designed, anything you can do in the web interface, can be done from the API (and hopefully one day from this Python package too).\n\nYou can either import every endpoint\n\n```\nimport HaloPSA.Halo\n```\nOr import only the ones you need (Full list below)\n```\nfrom HaloPSA.Halo import clients, invoices\n```\nI highly recommend you check the official Halo API documentation here: https://halo.halopsa.com/apidoc/info and for an even more in depth list, check out the swagger file here: https://halo.halopsa.com/api/swagger/index.html\n\nFeel free to ask questions in the github issues area, I will try my best to answer.\n# Endpoints\nI am implementing these as I need them, and trying to keep them as consistent and easy to understand as possible.\n\n## Partially implemented\n### Assets\nYou Halo assets\n#### Get\nWorking, has docstring.\n### Search\nWorking, has docstring.\n#### GetAll \nWorking, but planning to remove this as you can just use search with no variables to get the same result.\n#### Update (create)\nCreates or updates one or more assets.  If ID is included, asset(s) will be updated.  If ID is not included, new asset(s) will be created.\n- Working but requires \"fields\" to be sent in a specific JSON-like format.  Working on a better solution.  Has docstring.\n#### Delete\nNot implemented.\n### Clients\nYou customers/clients\n#### Get\nWorking, has docstring.\n#### Search\nWorking, has docstring.\n#### Update\nNot implemented.\n#### Delete\nNot implemented.\n### Recurring Invoices*\n*Not in official documentation, found in Swagger + checking API calls from browser.\n#### Get\nNot implemented.\n#### Search\nWorking, needs better docstring.\n#### Update\nNot implemented.\n#### UpdateLines\nTechnically working, needs documentation and docstring.\n#### Delete\nNot implemented.\n###Sites\n#### Get\nNot implemented.\n#### Search\nImplemented, has docstring.\n#### Update\nNot implemented.\n#### Delete\nNot implemented.\n\n\n## Not implemented\n### Planning to implement soon/Implemented in a previous version\n- Currency\n- Tickets\n- Items\n- Invoices\n### Low Priority (if not listed, assume here)\n- Actions\n- Users\n",
    "bugtrack_url": null,
    "license": null,
    "summary": "Python frontend for the HaloPSA API",
    "version": "0.0.4",
    "project_urls": {
        "Homepage": "https://github.com/ItsJustAGitHubMichealWhosGonnaSeeIt5Ppl/HaloPSA-API",
        "Issues": "https://github.com/ItsJustAGitHubMichealWhosGonnaSeeIt5Ppl/HaloPSA-API/issues"
    },
    "split_keywords": [
        "halopsa",
        " halopsa api"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "cea96107bb7eae2f6eb8e8f957bbad72a9b0bc66652848b5adf92d4c51cad919",
                "md5": "2e7abca24a0682c24a72a15ad72f5116",
                "sha256": "f47ce527b5e7d87c1dbf77c9c463db4c2f89914c3d548775701a6748663548b6"
            },
            "downloads": -1,
            "filename": "HaloPSA-0.0.4-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "2e7abca24a0682c24a72a15ad72f5116",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.10",
            "size": 21982,
            "upload_time": "2024-10-24T17:14:36",
            "upload_time_iso_8601": "2024-10-24T17:14:36.675237Z",
            "url": "https://files.pythonhosted.org/packages/ce/a9/6107bb7eae2f6eb8e8f957bbad72a9b0bc66652848b5adf92d4c51cad919/HaloPSA-0.0.4-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "000a18a11ee3683c0dc19b80a034c61b4c92b40e2bbfb4e79807cfe7020d94a1",
                "md5": "bd7ab600883e82d669ae2d4b31ff4d0c",
                "sha256": "d3ab747931356437be788d7d4d4a7f01d0a480bf656acdf0a11b43d7467b6458"
            },
            "downloads": -1,
            "filename": "halopsa-0.0.4.tar.gz",
            "has_sig": false,
            "md5_digest": "bd7ab600883e82d669ae2d4b31ff4d0c",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.10",
            "size": 23061,
            "upload_time": "2024-10-24T17:14:37",
            "upload_time_iso_8601": "2024-10-24T17:14:37.776288Z",
            "url": "https://files.pythonhosted.org/packages/00/0a/18a11ee3683c0dc19b80a034c61b4c92b40e2bbfb4e79807cfe7020d94a1/halopsa-0.0.4.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-10-24 17:14:37",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "ItsJustAGitHubMichealWhosGonnaSeeIt5Ppl",
    "github_project": "HaloPSA-API",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "requirements": [],
    "lcname": "halopsa"
}
        
Elapsed time: 0.40878s