Releases: readium/readium-lcp-server
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.
Version 1.7.0
lcpencrypt:
- Add the possibility to choose a storage filename different from the unique identifier of the content
- Add the possibility to specify a content encryption key, in order to manage content update without the need to regenerate licenses associated with this content.
- Add a way for license providers to manage loan extensions via their own rules.
- Add the support of .webpub for packaged web publications
lspserver:
Stop returning renew and return links in status documents for revoked or cancelled licenses.
general:
Update install instructions in the readme.
Version 1.6.0
-
Restores the capability for the lcpencrypt utility to fetch the input file from a remote http server.
-
Offers an alternative way to store encrypted publications: the lcpencrypt utility can now store an encrypted publication to its final storage location (file system or S3 bucket), and does not rely on the License Server to do so. In such a case, the lcpencrypt utility notifies the lcpserver of the encryption of a new publication with its storage URL as a parameter.
An implementer can therefore control storage folders or S3 buckets as he needs, e.g. use one folder/bucket per month, one folder/bucket per type of publication, even one folder/bucket per publication if this is his choice.
The evolution is totally backward compatible, i.e. implementers are able to keep their current architecture and configuration file. They are also able to move to the new architecture without the requirement to change the structure or content of their active database. Implementers willing to move to the new architecture will just have to modify their config file, restart their lcpserver and use lcpencrypt with new parameters.
Version 1.5.0
- Handle the processing of .webpub files (Readium Packaging Format), especially when they contain PDF fields (with metadata and cover); as described in issue Encryption tool: Handle RPF files with PDF content #247.
- Fix a regression on the encryption of PDF file which appeared in v1.4.1, described in issue Regression: PDF encryption fails #255
- Fix the creation of a fake ("0001/01/01") date published in the generated manifest when a PDF file is encrypted.