GhostXML is a plugin that supports calls to API endpoints using an array of authentication protocols. It is capable of processing both XML and JSON payloads and making payload data available in Indigo device states.
- User creates a unique device object for each API endpoint.
- User enters payload type, URL/Path, authentication settings (as needed) and other settings that apply to the connection instance.
- After a successful connection, the plugin parses the returned payload into custom device states.
- The states are ephemeral. In other words, an individual state will continue to be available as long as subsequent API calls return the associated key/value pair.
- If the API stops returning a specific key, the state will be removed from the associated device.
- The project is divided into two distinct and separate repositories:
- GhostXML.indigoPlugin: the main plugin repository, and
- GhostXML.wiki: the plugin wiki repository.
- Changes to the plugin files should not be pushed to the wiki repo, and changes to the wiki should not be pushed to the plugin repository.
Tests live in tests/. The tests/shared/ directory is a read-only git submodule
pointing to https://github.com/IndigoDomotics/TestingBase.git (branch: main).
- Never edit files inside
tests/shared/locally. Changes must be made upstream in the TestingBase repository. - Update the submodule:
git submodule update --recursive --remote tests/shared - The
tests/.envfile holds local environment variables and is gitignored.