v0.30.0: Release Notes

Artipie new version v0.30.0 was released on May 2. In the previous month we added several features, here are the main three of them:

  • Artifacts filtering provides means to filter out resources of a repository by specifying patterns of resource location. Two types of patterns are supported: regular expressions and globs. Also, we support patterns to exclude and to include repository resources. Check our wiki for more details.

  • Permissions for REST API operation were added. Now, it’s possible to configure access for API endpoints and control what users are allowed to view and/or manage repositories, storage aliases, users, roles. All the details are described in wiki.

  • S3 storage configuration does not require credentials in YAML configuration anymore. Credentials for S3 storage can set via Java System Properties, environmental variables, in ~/.aws/credentials file or any other way supported by default AWS provider.

Thanks for reading, if you have any questions or suggestions, feel free to create an issue or contact us on Telegram.

v0.29.0: Release Notes

Artipie new version v0.29.0 was released on March 31. The previous months we were working on Artipie security policy and permissions. The goal is to introduce flexible security model, that can be implemented by users themselves, and transparent permissions model, that can be extended in the repository adapter if necessary. We took Java Security as an example, and created a role-based model to grant and verify user access permissions. The main implementation components are policy and permissions.

Policy grants permissions to users and roles, or, in other words, in Artipie, policy is the format in which permissions and roles are assigned to users. We provide out of the box policy in yaml format, but it’s also possible to implement any custom policy format and linked it up to Artipie.

Permission grants access to some operations in the repository. Repository (or adapter) requires some specific permission for some operation and whether allows or not to perform the operation. Permissions are inherited from java.security.Permission and java.security.PermissionCollection, there is no way to directly prohibit the operation, it’s only possible to allow it. User permissions are joined from his individual permissions and roles permissions.

To learn more about permission types and settings, check our Wiki page.

v0.28.0: Release Notes

At the end of November, Dzone has published our article: Private Remote Maven Repository With Artipie. We will be happy to get any feedback!

Artipie new version v0.28.0 was released on December 21. The previous two months we were working on Artipie monitoring and metrics. The goal is to provide easy to use and understand monitoring system, which will allow us to know what is happening in the Artipie, how fast the artifacts are uploaded and downloaded, catch and fix any problems right on time. We approached monitoring from two different directions: gathering metrics with Micrometer and providing measurements in Prometheus compatible format and implementing diagnostics and profiling data with Java Flight Records.

Micrometer metrics can gather the following statistics:

To learn more about each metrics type, check our Wiki.

Artipie JFR events are generated on each HTTP request and storage operation. Check the Wiki for more details.

v0.27.4: Release Notes

Artipie was represented in DevOops conference on October 19 in Saint-Petersburg. Our current team-leader Denis Garus told how to use Artipie with Maven and Docker repositories. Find the workshop announce here.

v0.27.4 was released on October 27. The last and current months we are working on Artipie monitoring and metrics. The goal is to provide easy to use and understand system, which will allow us to know what is happening in the Artipie, how fast the artifacts can be uploaded and downloaded, catch and fix any problems right on time. The first steps in this direction were made some time ago, and we already have some measurement instruments. To enable all currently available metrics, add the following section into main configuration yaml:

meta:
  metrics:
    -
      type: log # Metrics type, `log` to print statistics into application log
      interval: 5 # Publishing interval in seconds, default value is 5
    -
      type: asto # Metrics type, `asto` to publish statistics into storage
      interval: 5 # Publishing interval in seconds, default value is 5
      storage: # Storage to publish the metrics to
        type: fs
        path: /tmp/artipie/statistict
    -
      type: prometheus # Obtain metrics in `promethium` compatible format
    -
      type: vertx # Metrics type, `vertx` for Vert.x embedded metrics
      endpoint: "/metrics/vertx" # Path of the endpoint, starting with `/`, where the metrics will be served
      port: 8087 # Port to serve the metrics

To learn more about each metrics type, check our Wiki.

v0.27.0: Release Notes

v0.27.0 was released on October 5. This time we are releasing management Rest API. The API allows to manage Artipie repositories, storages and users. API is self-documented with Swagger interface.

We implemented Rest API using Vert.x web framework and OpenAPI specification v3.0.0. Endpoints can be (by user’s choose) protected with SSL, authentication is implemented with JWT-tokens. Here is simple and short instructions, how to run latest Artipie Docker image and check new Rest API:

First, make sure you have already installed Docker Engine. Then, open command line and instruct Docker Engine to run Artipie container:

docker run -it -p 8080:8080 -p 8086:8086 artipie/artipie:latest

Artipie image generates default configuration, prints a list of running repositories, test credentials and a link to the Swagger documentation to console. To check existing repositories using Artipie Rest API:

  • go to Swagger documentation page http://localhost:8086/api/index-org.html, choose “Auth token” in “Select a definition” list,
  • generate and copy authentication token for default user artipie/artipie,
  • switch to “Repositories” definition, press “Authorize” button and paste the token
  • then perform GET /api/v1/repository/list request. Response should be a json list with three default repositories:
    [
    "artipie/my-bin",
    "artipie/my-docker",
    "artipie/my-maven"
    ]
    

    To learn more about Rest API, check Wiki documentation.

At the beginning of September another article about Artipie was published in Russian IT resource, check it here. Habr is the largest and the most well known Russian IT resource.

If you have any question, suggestion or notes, please, do not hesitate to comment this blog post or contact us in Telegram.

v0.26.0: Release Notes

DZone has published our article about Artipie: An Easy Way to Get Your Own Binary Repository. We will be happy to get any comments about it!

v0.26.0 was released on August 31. We have great news:

New release includes support for HexPM repository - package manager for Elixir and Erlang.

If you are interested how to configure and use HexPM repository, visit this page in Wiki, to learn more about repository internals and implementation, check hexpm-adapter GitHub repository.

Here are several more important features we worked on in August:

If you have any question, suggestion or notes, please, do not hesitate to comment this blog post or contact us in Telegram.

v0.25.0: Release Notes

v0.25.1 was released on July 29. This month we mostly focused on Artipie documentation and wiki improvements, we are also preparing some articles and posts. The links will be available here as soon as we publish them. Besides, the following changes were made:

Several month ago, we extended rpm-adapter with the feature to set a schedule for repository update. This feature can be enabled in repository configuration:

repo:
  type: rpm
  storage:
    type: fs
    path: /var/artipie/centos
  settings:
    digest: sha256 # digest algorithm for rpm packages checksum calculation, sha256 (default) and sha1 are supported
    naming-policy: sha1 # naming policy for metadata files: plain, sha1 or sha256 (default) prefixed
    filelists: true # calculate metadata filelists.xml, true by default
    # repository update mode:
    update:
      # update metadata on package upload
      on: upload
      # or schedule the update
      on:
       cron: 0 2 * * *

New update section allows to set update mode: either update the repository when the package is uploaded via HTTP

repo:
  type: rpm
  ...
  settings:
    update:
      on: upload

or schedule the update via cron field. As rpm repository update process can be time-consuming for large repositories and new packages as a rule are not often added, it can be convenient to schedule the update for every night at 2 AM:

repo:
  type: rpm
  ...
  settings:
    update:
      on: 
        cron: 0 2 * * *

If you have any question, suggestion or notes, please, do not hesitate to comment this blog post or contact us in Telegram.

v0.24.0: Release Notes

Hello, it’s been a while since the last Artipie blog post. Despite the absence of the posts, Artipie has been constantly developing, growing and improving the whole time. Today, we want to introduce our roadmap, invite you to join our Telegram group and remind you, that we have central.artipie.com for private repository hosting. Artipie central now supports authorization via GitHub, generate github access token and use github.com/your_username as login (your GitHub username with github.com/ prefix) and access token as password in Artipie central. If any questions appear, contact us in Telegram.

Artipie docker image version v0.24.0 is already available in DockerHub (you can use latest tag), fat jar file can be downloaded from GitHub release page.

Here is a list of the repositories types Artipie now supports:

  • Maven - Java artifacts and dependencies
  • Docker - Docker containers repository
  • NPM - JavaScript code sharing and packages store
  • PyPI - Python packages index
  • Anaconda - built packages for data science
  • RPM - .rpm (linux binaries) packages repository
  • GEM - RubyGem hosting service
  • Go - Go packages storages
  • Files (binary) storage - host any files you like
  • Helm - Helm charts repository
  • NuGet - hosting service for .NET packages
  • Debian - Debian linux packages repository
  • Composer - Package source for PHP packages

You can find example usages and settings for each repository type in this Artipie examples directory.

In the past several month, we were working on: