Releases: readium/readium-lcp-server
v1.12.1
This is a maintenance evolution. The only addition is a new command-line parameter -pdfnometa, which is false by default.
If set to true, PDF metadata (title, author, subject) is not extracted from a PDF document, except for the number of pages of the publication, which is needed for proper navigation in a reading system.
This is useful if the PDF metadata is considered too bad.
v1.12.0
This is mainly an evolution of the lcpencrypt command-line executable: the first page of a PDF file used as an input is extracted, rasterised, and becomes the cover of the output packaged web publication. A few metadata properties are extracted from the PDF simultaneously.
The conformance property of PDF packaged web publications is also corrected, so that reading applications like Thorium process them correctly (until now, the go-to page function was not available on LCP-protected PDF documents).
The process of extracting covers for use by a content management system (-cover command line parameter) has been refectored to be more generic.
There are also a few code fixes, essentially optimizations driven by the linter.
The minimum GO version is now 1.24. Please update your GO compiling environment if needed.
Before compiling, don't forget to update the dependencies:
go get -u ./... && go mod tidy
V1.11.0
This is a minor update of the codebase:
- New private endpoint for the License Server, named (GET) /licensecount. Takes two parameters,
fromandto, both RFC3339 date&time values. Default values are from the current date 12 months from now to now. Returns the total number of licenses generated during this period, as a json document with three fields: total, from and to. - New private endpoint for the Status Document Server, named (GET) /licensecount. Same parameters as the previous endpoint. Returns the total number of licenses generated during this period split by status, as a json document with a number of fields: total, ready, active, expired, returned, revoked, cancelled, from and to.
- Fix of a PostgreSQL issue on the delete feature of the content table in the License Server database.
- README updates
V1.10.0
This version brings some improvements:
Add a "self" relation to License Status Documents. This is requested by the ODL (Library to Library exchange) protocol.
Add a "/ping" endpoint to the license and status servers. This is useful to check that the servers are alive.
Ease the replacement of a publication with a new version. Sometimes, replacing a publication in the LCP Server with a new version is important. This is especially the case if the publication's accessibility has been corrected. By doing so, new users of the publication get the latest version, and users who already have a license for this publication can download the new version after deleting the previous instance from their reading application. More info in #341.
Allow a loan extension after the expiration of a license (option). As a user, I can borrow a book from my local library but miss the renewal deadline. In such a case, I would like to reaccess it by extending my loan. Some license providers don't see any problem allowing that behavior. A new "renew_expired" (bool) config parameter is created for this purpose. More info in #345.
Allow a loan extension for N days from the current timestamp (option). By default, "renew_days" is a number of days that is added to the license end timestamp, taken as a reference for the extension. A new configuration parameter named "renew_from_now" (bool) sets the reference for the extension to the current timestamp. More info in #346.
V1.9.3
This version introduces a new endpoint for easing subscription management (/extend).
It also brings minor enhancements:
- It reactivates a test relative to the presence of the new version of the lcplib, that supports LCP Profile 2.
- It clarifies the message indicating that the configuration file activates a production profile, but the executable is a test one.
- It sets the default value of the license status register configuration property to true.
- It clarifies the definition of renew configuration properties.
V1.9.2
This version brings some lightweight improvements:
- In go.mod, indicate go1.19 support.
- update dependencies, especially the crypto ones.
- Filter custom properties in the user section of a partial license, as we this code cannot handle such custom properties.
- Reset the potential rights end datetime when a license has expired or is cancelled or revoked.
- Add a Test mode and a Test route that returns the last license generated. This is to avoid putting in place a License Gateway for simple tests of the server.
- In the endpoint that returns an encrypted publication, set Content-Disposition to a sensible value if the content was stored by lcpencrypt.
- Add precisions in the readme.
V1.9.1
V1.9.0
LCP Server:
- Can manage 2.x EDRLab LCP Profiles.
- Can send logs to a Slack channel. Users must add Slack access keys to the configuration file. This will be especially useful for client-server LCP certification.
- Can serve static files via http. The source directory is configured via the new "resources" config parameter available in the "lcp" section. This is especially useful to serve cover files generated by LCP Encrypt and displayed by the new Pubstore application.
- Can delete a content item via the REST API.
- Does not display http logs anymore.
- Correctly escapes EPUB resource file paths when stored as URIs in encryption.xml
- Displays the version of the executable and version of the LCP profile.
LCP Encrypt:
- Can extract the cover image from an EPUB file and copy it to the same directory as the encrypted file. Users must add the "-cover" parameter to the command line.
- Can notify a Content Management System (CMS) about the encryption of a file. Users must add the "-notify" parameter to the command line.
- Can notify an LCP Server v2, which has a different notification API. Users must add the boolean "-v2" parameter to the command line.
- Can display the notification message sent to the LCP Server and/or CMS. Users must add the boolean "-verbose" parameter to the command line.
Plus:
- Dependencies have been updated.
- The README ad Wiki have been updated.
Version 1.8.1
Fix of the workaround related to the new "cert_date" parameter.
Version 1.8.0
- add multidb functionality to the db access level.
- integrate an MS SQL Server variant, using github.com/denisenkom/go-mssqldb
- make renew_page_url config param a URL template, with a {license_id} parameter
- make lsd problem details conformant to the spec: add a type on every detail that is returned to a device.
- raise an error when generating a license with an improper profile.
- offer a workaround to an issue related to the validity of licences after an X509 cert update. The issue comes from an incorrect interpretation in the mobile LCP client library of the test of date of license vs dates of validity of the provider certificate. To fix the issue in the short term, we published a workaround in the LCP Server, which requires the use of the new "cert_date" config parameter.
- move the Test Frontend Server config details from the readme to the wiki.
- add a favicon to the Test Frontend Server.
- on the Test Frontend Server, avoid binding the port to the specified hostname resolved IP address.