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:
- Vert.x embedded Micrometer metrics generate various HTTP server-related metrics (opened and stalled connection, processing time and processed bytes, etc)
- JVM and system metrics includes loaded classes counts, memory usage, GC statistic, processor and threads metrics
- Artipie storage metrics gather statistics about storage operation
- Artipie HTTP metrics gather HTTP requests and responses related 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:
- Artipie Abstract Storages were restructured and improved to provide a possibility to integrate and use custom storage implementations;
- We started to develop test framework that will allow verifying any Storage implementation;
- Added tests to verify user groups permissions for repository
- Dependencies were updated in the following adapters: nuget, docker, conda, debian, files, maven, npm. These adapters were released and updated in new Artipie release;
- Artipie Wiki was fully restructured and upgraded.
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:
- Single repository on port use case was fixed: Artipie allows to serve repository on individual port;
- Artipie asto (abstract data storages implementation) module was restructured into Maven multi-module project; now each storage implementation can be added as a new module
- Redis storage was implemented
- File proxy adapter now supports caching
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:
- Developing Artipie dashboard and management API. Dashboard is already hosted in Artipie Cental, management API documentation is available here.
- We are developing Conan-adapter to support C/C++ packages repository. Integration tests are already implemented
- S3 storage multipart upload was optimized and improved
- Developed SDK to transform Publishers of ByteBuffers into IOStreams. These methods are often required to update repository metadata
- We are validating and actualizing documentation for each Artipie repository