{"id":15010129,"url":"https://github.com/stephenmoloney/openstex","last_synced_at":"2025-04-09T22:41:32.956Z","repository":{"id":62430196,"uuid":"62237703","full_name":"stephenmoloney/openstex","owner":"stephenmoloney","description":"Openstex is a client in the elixir language for Openstack compliant APIS. ","archived":false,"fork":false,"pushed_at":"2018-03-04T22:42:20.000Z","size":105,"stargazers_count":10,"open_issues_count":7,"forks_count":2,"subscribers_count":4,"default_branch":"master","last_synced_at":"2025-03-24T00:38:20.125Z","etag":null,"topics":["elixir","elixir-lang","hubic","openstack","openstack-swift","ovh","ovh-openstack","rackspace","rackspace-cloud-files","rackspace-cloud-services"],"latest_commit_sha":null,"homepage":"https://hexdocs.pm/openstex","language":"Elixir","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/stephenmoloney.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2016-06-29T15:38:37.000Z","updated_at":"2024-09-22T21:13:05.000Z","dependencies_parsed_at":"2022-11-01T20:18:12.042Z","dependency_job_id":null,"html_url":"https://github.com/stephenmoloney/openstex","commit_stats":null,"previous_names":[],"tags_count":10,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stephenmoloney%2Fopenstex","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stephenmoloney%2Fopenstex/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stephenmoloney%2Fopenstex/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stephenmoloney%2Fopenstex/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/stephenmoloney","download_url":"https://codeload.github.com/stephenmoloney/openstex/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248124848,"owners_count":21051757,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["elixir","elixir-lang","hubic","openstack","openstack-swift","ovh","ovh-openstack","rackspace","rackspace-cloud-files","rackspace-cloud-services"],"created_at":"2024-09-24T19:30:31.603Z","updated_at":"2025-04-09T22:41:32.938Z","avatar_url":"https://github.com/stephenmoloney.png","language":"Elixir","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Openstex [![Hex Version](http://img.shields.io/hexpm/v/openstex.svg?style=flat-square)](https://hex.pm/packages/openstex) [![Hex docs](http://img.shields.io/badge/hex.pm-docs-green.svg?style=flat-square)](https://hexdocs.pm/openstex) [![License](https://img.shields.io/hexpm/l/openstex.svg?style=flat-square)](https://github.com/stephenmoloney/openstex/blob/master/LICENSE.md) [![Build Status](https://travis-ci.org/stephenmoloney/openstex.svg)](https://travis-ci.org/stephenmoloney/openstex) \n\nAn elixir client for making requests to [Openstack compliant apis](http://developer.openstack.org/api-ref.html).\n\n### Supported services\n\n| Openstack Service | Supported |\n|---|---|\n| Identity 2.0 (Keystone) | :heavy_check_mark: |\n| Object Storage 1.0 (Swift) | :heavy_check_mark: |\n\n\n### Features\n\n\n### 1. Request modules for generating `HTTPipe.Conn.t` structs which can subsequently be sent\nto the API using a `request` function.\n\n- Example - creating a new container\n\n```elixir\naccount = Client.Swift.get_account()\nconn = Openstex.Swift.V1.create_container(\"new_container\", account)\nclient.request(conn)\n```\n\n\n### 2. Helper modules for\n\na. One liners for sending queries to the client API.\n\n- Example - Uploading a file\n\n```elixir\nfile_path = Path.join(Path.expand(__DIR__, \"priv/test.json\")\nClient.Swift.upload_file(file_path, server_object, container,\n```\n\nb. Sending more complex queries such as multi-step queries to the client API.\n\n- Example - Getting all objects in a pseudofolder recursively, `[nested: :true]` will\ncheck for objects recursively in deeper folders.\n\n```elixir\nfile_path = Path.join(Path.expand(__DIR__, \"priv/test.json\")\nClient.Swift.list_objects(\"nested_folder\", \"new_container\", [nested: :true])\n```\n\n\n### 3. Adapter modules for\n\n- [OVH Cloudstorage](https://www.ovh.ie/cloud/storage/)\n- [Rackspace Cloudfiles CDN](https://www.rackspace.com/cloud/cdn-content-delivery-network).\n- [Rackspace Cloudfiles](https://www.rackspace.com/cloud/files)\n\n\nAll of the above Adapters provide access to Swift Object Storage services which are (mostly) openstack compliant.\n\n\n\n## Installation and Getting Started\n\n| Adapter | Getting started |\n|---|---|\n| Ovh Adapter | [openstex_adapters_ovh](https://github.com/stephenmoloney/openstex_adapters_ovh) |\n| Rackspace Adapter | [openstex_adapters_rackspace](https://github.com/stephenmoloney/openstex_adapters_rackspace) |\n\n\n## Tests\n\n- `mix test`\n\n\n## Available Services\n\n| Tables        | Version           | Status  |\n| ------------- |:-------------:| -----:|\n| Identity (Keystone) , [overview](https://wiki.openstack.org/wiki/keystone), [api](http://developer.openstack.org/api-ref-identity-v2.html)     | v2   | :heavy_check_mark:  |\n| Identity (Keystone) , [overview](https://wiki.openstack.org/wiki/keystone), [api](http://developer.openstack.org/api-ref-identity-v3.html)     | v3   | :x: |\n| Object Storage (Swift) , [overview](https://wiki.openstack.org/wiki/swift), [api](http://developer.openstack.org/api-ref-objectstorage-v1.html)     | v1   | :heavy_check_mark: |\n\n[Openstack api reference](http://developer.openstack.org/api-ref.html)\n\n\n## TODO\n\n- [ ] improve the docs for some of the functions\n- [ ] add tests for genserver workings in `Openstex.Adapters.Bypass.Keystone`\n- [ ] add tests for `Openstex.Keystone.V2.HelpersTest`\n- [ ] add tests for `Openstex.Swift.V1` with the execution of the `HTTPipe.Conn` structs with bypass.\n`\n\n## Licence\n\n[MIT Licence](LICENCE.md)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fstephenmoloney%2Fopenstex","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fstephenmoloney%2Fopenstex","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fstephenmoloney%2Fopenstex/lists"}