Security News
Research
Data Theft Repackaged: A Case Study in Malicious Wrapper Packages on npm
The Socket Research Team breaks down a malicious wrapper package that uses obfuscation to harvest credentials and exfiltrate sensitive data.
This is the official Python client library for Egnyte's Public APIs. For overview of the HTTP API, go to https://developers.egnyte.com
Register on https://developers.egnyte.com/member/register to get API key for your Egnyte account. This key is required to generate an Egnyte OAuth token.
.. code-block::python
import egnyte
.. code-block::python
egnyte.base.get_access_token({"api_key":"cba97f3apst9eqzdr5hskggx", "login":"test", "password":"password", "grant_type":"password", "domain":"apidemo"})
.. code-block:: python
client = egnyte.EgnyteClient({"domain": "apidemo.egnyte.com",
"access_token": "68zc95e3xv954u6k3hbnma3q"})
.. code-block:: python
folder = client.folder("/Shared/new").create(ignore_if_exists=True)
.. code-block:: python
client.folder("/Shared/time to say goodbye").delete()
.. code-block:: python
folder = client.folder("/Shared/foo that need to be bar")
folder.list()
for file_obj in folder.files:
with file_obj.download() as download:
data = download.read()
# replace file contents
file_obj.upload(data.replace(b"foo", b"bar"))
file_obj.add_note("all occurrences of 'foo' replaced by 'bar'!")
.. code-block:: python
folder = client.folder("/Shared")
folder.list()
for folder_obj in folder.folders:
do_something(folder_obj)
.. code-block:: python
file_obj = client.file("/Private/smeagol/my precious")
with open("local path", "rb") as fp:
file_obj.upload(fp)
.. code-block:: python
file_obj.delete()
.. code-block:: python
client.bulk_download(['/Shared/a dir', '/Shared/another dir'],
'/home/smeagol/', overwrite=True)
.. code-block:: python
client.bulk_upload(['/tmp/some directory', '/tmp/some file'], '/Shared/Marketing')
.. code-block:: python
import datetime
results = api.search.files('"some text" OR "other text"', folder='/Shared', modified_after=datetime.date(2015, 1, 15))
.. code-block:: python
events = api.events.filter(folder='/Shared', suppress='user')
old_events = events.list(events.latest_event_id - 10, count = 10) # get events in batches
future_events = iter(events)
for event in future_events: # polls server continously, iterator over single events, iterator will never end
do_something(event)
if condition(event):
break
The docs subdirectory contains just the source for the documentation. You can read the documentation at http://egnyte.github.io/python-egnyte-docs/
If you're using implicit flow, you'll need to provide access token directly. If you're using API token with resource flow, you can generate API access token using command line options. See the full documentation or install, then use:
.. code-block:: python
python -m egnyte -h
Configuration file will be created in ~/.egnyte/config.json
.. code-block:: python
python -m egnyte config create -d DOMAIN [-l LOGIN] [-p PASSWORD] -k API_KEY [-t ACCESS_TOKEN] [-T TIMEOUT]
.. code-block:: python
python -m egnyte config update --timeout TIMEOUT_INTEGER
This library depends on:
Each client object should be used from one thread at a time. This library does no locking of it's own - it is responsibility of the caller to do so if necessary.
Tests can be run with nose or trial directly on the egnyte package, or from setup.py:
.. code-block:: python
python setup.py test
or
.. code-block:: python
python -m unittest discover
In order to run tests, you need to create test configuration file: ~/.egnyte/test_config.json
.. code-block:: json
{
"access_token": "access token you received after passing the auth flow",
"api_key": "key you received after registering your developer account",
"domain": "your Egnyte domain, e.g. example.egnyte.com",
"login": "username of Egnyte admin user",
"password": "password of the same Egnyte admin user"
}
You can create this file manually or with following command:
.. code-block:: python
python -m egnyte -c test\_config.json config create -k <API_Key> -d <domain> -l <username> -p <password> -t <access_token>
Tests will be run against your domain on behalf on admin user.
Please refer to https://developers.egnyte.com/docs/read/Public_API_Authentication#Internal-Applications for information about how to generate access token.
Please report any problems you find to api-support@egnyte.com or pint@egnyte.com
If you'd like to fix something yourself, please fork this repository, commit the fixes and updates to tests, then set up a pull request with information what you're fixing.
Please remember to assign copyright of your fixes to Egnyte or make them public domain so we can legally merge them.
FAQs
Egnyte Public API SDK
We found that egnyte demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
Research
The Socket Research Team breaks down a malicious wrapper package that uses obfuscation to harvest credentials and exfiltrate sensitive data.
Research
Security News
Attackers used a malicious npm package typosquatting a popular ESLint plugin to steal sensitive data, execute commands, and exploit developer systems.
Security News
The Ultralytics' PyPI Package was compromised four times in one weekend through GitHub Actions cache poisoning and failure to rotate previously compromised API tokens.