GithubHelp home page GithubHelp logo

astarte-go's People

Contributors

annopaolo avatar bettio avatar drf avatar eddbbt avatar matt-mazzucato avatar rafiramadhana avatar rbino avatar

Stargazers

 avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

astarte-go's Issues

Rework the `client` package

The client package provides a too vast set of functionalities and, despite so, makes it difficult to further customize the current req/res mechanism (e.g. there is no way of retrieving raw Astarte data, or see #20). Moreover, the current API does not use a state-of-the-art approach to building and executing HTTP calls.
As stated in #30, the package should be rationalized and a more idiomatic style is to be enforced.

Provide guidelines for astarte-go users

After reworking the structure of the astarte-go library (see #30), the APIs will be not compatible with the 0.90.x releases. Thus, a new set of guidelines and good practices will be available.

In this context, provide an effective walkthrough for migrating to and using the new version of the library.

Add support for EC keys in tokens

Right now only RSA keys are supported, and we're trying to move towards EC keys since they're future-proof, they're shorter and they generate shorter JWTs.

[meta] Provide a new API

The current API is quirky and difficult to integrate as a dependency, especially for AppEngine-related functions.
Provide a new, polished and idiomatic API.

The following packages will be exported:

  • interfaces: interface parsing and validation,
  • device-utils: Astarte device ID generation and handling (e.g. conversion to/from UUID),
  • auth: all things related to Astarte auth (via JWT),
  • client: HTTP client for Astarte services aimed at interacting with the Astarte APIs and parsing retrieved data.
  • data: parsing functions for data retrieved using the client package.

This is a major change, and possibly breaking. As such, parts of the current codebase will be rewritten: as the Go modules reference suggest, a v0 version does not signal stability or backward compatibility guarantees.
The old API will be supported for now (see the release-0.90 branch), and deprecated in the future.
A migration path to the new API should be provided, along with documantation on new guidelines and good practices.

This is a meta issue to keep track of all changes required.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.