Skip to content

Commit

Permalink
Merge pull request #1585 from folio-org/FOLIO-873-improve-docs-254
Browse files Browse the repository at this point in the history
FOLIO-873 improve docs
  • Loading branch information
dcrossleyau committed Feb 7, 2024
2 parents d55da4d + 5fd9988 commit f66422b
Show file tree
Hide file tree
Showing 5 changed files with 85 additions and 27 deletions.
2 changes: 1 addition & 1 deletion Gemfile
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ gem "jekyll-feed"
gem "webrick"
# nokogiri is required by html-proofer.
# If we get a security alert, but not updated upstream, then declare it here.
# gem "nokogiri", ">= 1.13.10"
#gem "nokogiri", ">= 1.16.2"

group :jekyll_plugins do
gem "html-proofer"
Expand Down
40 changes: 20 additions & 20 deletions Gemfile.lock
Original file line number Diff line number Diff line change
Expand Up @@ -5,14 +5,13 @@ GEM
addressable (2.8.6)
public_suffix (>= 2.0.2, < 6.0)
afm (0.2.2)
async (2.6.5)
async (2.8.1)
console (~> 1.10)
fiber-annotation
io-event (~> 1.1)
timers (~> 4.1)
base64 (0.2.0)
colorator (1.1.0)
concurrent-ruby (1.2.2)
concurrent-ruby (1.2.3)
console (1.23.3)
fiber-annotation
fiber-local
Expand All @@ -22,18 +21,17 @@ GEM
ethon (0.16.0)
ffi (>= 1.15.0)
eventmachine (1.2.7)
faraday (2.8.1)
base64
faraday-net_http (>= 2.0, < 3.1)
ruby2_keywords (>= 0.0.4)
faraday-net_http (3.0.2)
faraday (2.9.0)
faraday-net_http (>= 2.0, < 3.2)
faraday-net_http (3.1.0)
net-http
ffi (1.16.3)
fiber-annotation (0.2.0)
fiber-local (1.0.0)
forwardable-extended (2.6.0)
google-protobuf (3.25.1)
google-protobuf (3.25.1-x86_64-darwin)
google-protobuf (3.25.1-x86_64-linux)
google-protobuf (3.25.2)
google-protobuf (3.25.2-x86_64-darwin)
google-protobuf (3.25.2-x86_64-linux)
hashery (2.1.2)
html-proofer (5.0.8)
addressable (~> 2.3)
Expand All @@ -47,7 +45,7 @@ GEM
http_parser.rb (0.8.0)
i18n (1.14.1)
concurrent-ruby (~> 1.0)
io-event (1.4.0)
io-event (1.4.3)
jekyll (4.3.3)
addressable (~> 2.4)
colorator (~> 1.0)
Expand Down Expand Up @@ -89,12 +87,14 @@ GEM
rb-inotify (~> 0.9, >= 0.9.10)
mercenary (0.4.0)
mini_portile2 (2.8.5)
nokogiri (1.16.0)
net-http (0.4.1)
uri
nokogiri (1.16.2)
mini_portile2 (~> 2.8.2)
racc (~> 1.4)
nokogiri (1.16.0-x86_64-darwin)
nokogiri (1.16.2-x86_64-darwin)
racc (~> 1.4)
nokogiri (1.16.0-x86_64-linux)
nokogiri (1.16.2-x86_64-linux)
racc (~> 1.4)
octokit (4.25.1)
faraday (>= 1, < 3)
Expand All @@ -117,15 +117,14 @@ GEM
rexml (3.2.6)
rouge (4.2.0)
ruby-rc4 (0.1.5)
ruby2_keywords (0.0.5)
rubyzip (2.3.2)
safe_yaml (1.0.5)
sass-embedded (1.69.6)
sass-embedded (1.70.0)
google-protobuf (~> 3.25)
rake (>= 13.0.0)
sass-embedded (1.69.6-x86_64-darwin)
sass-embedded (1.70.0-x86_64-darwin)
google-protobuf (~> 3.25)
sass-embedded (1.69.6-x86_64-linux-gnu)
sass-embedded (1.70.0-x86_64-linux-gnu)
google-protobuf (~> 3.25)
sawyer (0.9.2)
addressable (>= 2.3.5)
Expand All @@ -137,9 +136,10 @@ GEM
typhoeus (1.4.1)
ethon (>= 0.9.0)
unicode-display_width (2.5.0)
uri (0.13.0)
webrick (1.8.1)
yell (2.2.2)
zeitwerk (2.6.12)
zeitwerk (2.6.13)

PLATFORMS
ruby
Expand Down
1 change: 1 addition & 0 deletions _data/remote-docs.json
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@
"https://raw.githubusercontent.com/folio-org/rfcs/master/text/0001-localizing-api-messages.md",
"https://raw.githubusercontent.com/folio-org/rfcs/master/text/0002-kafka-tenant-collection-topics.md",
"https://raw.githubusercontent.com/folio-org/rfcs/master/text/0003-folio-breaking-changes.md",
"https://raw.githubusercontent.com/folio-org/rfcs/master/text/0004-iso-8601.md",
"https://raw.githubusercontent.com/folio-org/stripes-cli/master/doc/dev-guide.md",
"https://raw.githubusercontent.com/folio-org/stripes-cli/master/doc/user-guide.md",
"https://raw.githubusercontent.com/folio-org/stripes-components/master/README.md",
Expand Down
13 changes: 7 additions & 6 deletions _data/repos.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"metadata": {
"generatedDateTime": "2024-01-16T00:46:54.685189+00:00"
"generatedDateTime": "2024-02-06T04:28:59.530509+00:00"
},
"repos": [
{
Expand Down Expand Up @@ -1938,9 +1938,9 @@
"defaultBranch": "master",
"description": "Invoice business logic",
"docDirName": null,
"hasDbSchema": null,
"hasDbSchema": "blob/master/src/main/resources/templates/db_scripts/schema.json",
"hintRmb": true,
"isRmb": null,
"isRmb": true,
"name": "mod-invoice",
"org": "folio-org",
"ramlDirName": "ramls",
Expand Down Expand Up @@ -2929,7 +2929,7 @@
"ramlDirName": null,
"repoLanguageHint": "java",
"repoType": "backend-mod",
"snippetIntro": "<p>FOLIO compatible title-level requests functionality.</p>",
"snippetIntro": "<p>FOLIO compatible title level requests functionality.</p>",
"workflows": [
"api-doc.yml",
"api-lint.yml",
Expand Down Expand Up @@ -4337,7 +4337,8 @@
"snippetIntro": "<p>The Lists UI Module, or <code>ui-lists</code>, is a Stripes UI Module used to create and manage Lists which are queries across multiple modules (for example: find all items marked as missing or declared lost, or find all open loans assigned to inactive users).</p>",
"workflows": [
"build-npm-release.yml",
"build-npm.yml"
"build-npm.yml",
"test.yml"
],
"workflowsFolio": [
"build-npm-release.yml",
Expand Down Expand Up @@ -5009,7 +5010,7 @@
"org": "folio-org",
"repoLanguageHint": "node",
"repoType": "ui",
"snippetIntro": "<p>Congratulations on creating a new Stripes UI app module! Follow the instructions below to run ui-requests-mediated and start your development.</p>",
"snippetIntro": "<p>This is a <a href='https://github.com/folio-org/stripes-core/'>Stripes</a> UI module for making requests on items.</p>",
"workflows": [
"build-npm-release.yml",
"build-npm.yml"
Expand Down
56 changes: 56 additions & 0 deletions _remote/rfcs/text/0004-iso-8601.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
---
layout: null
---

- Start Date: 2023-10-06
- Contributors:
- [Zak Burke](zburke@ebsco.com)
- RFC PRs:
- DRAFT REVIEW: https://github.com/folio-org/rfcs/pull/13
- PRELIMINARY REVIEW: TBD
- PUBLIC REVIEW: TBD
- FINAL REVIEW: TBD
- Outcome: REJECTED

# Date-time values must comply with IETF RFC-3339

## Summary

* Validation of date-time values must assert compliance with IETF RFC-3339.
* Date-time values in storage must be compliant with IETF RFC-3339 Section 5.6.
* APIs must respect date-time values when retrieving a range of values by date-time in a query.

## Motivation

Compliance with [IETF RFC-3339](https://www.rfc-editor.org/rfc/rfc3339.html) as stated in our ["Working with dates and times" documentation](https://dev.folio.org/guides/dates-and-times/).

## Detailed Explanation/Design

Code that validates date-time values must do so in accordance with [IETF RFC-3339 Section 5.6](https://www.rfc-editor.org/rfc/rfc3339.html#section-5.6).

Date-time values at rest must be fully compliant with [IETF RFC-3339 Section 5.6](https://www.rfc-editor.org/rfc/rfc3339.html#section-5.6).

Code that handles date-time values must respect all aspects of such values, including but not limited to their `time-offset` attributes. For example, an API that retrieves entries in a given date-time range must return the same results given any of the following arguments:

* `2023-10-05T12:51:12.000-04:00` and `2023-10-06T12:51:12.000-04:00`
* `2023-10-05T16:51:12.000Z` and `2023-10-06T16:51:12.000Z`
* `2023-10-05T11:51:12.000-05:00` and `2023-10-06T18:51:12.000+02:00`

### Related Jiras

* [MODAUD-172](https://issues.folio.org/browse/MODAUD-172)
* [UICIRCLOG-125](https://issues.folio.org/browse/UICIRCLOG-125)

## Risks and Drawbacks

Existing documentation states that, "The APIs assume UTC on input, and store and return timestamps in UTC". Thus, APIs may assume date-time values without a `time-offset` attributes are UTC, which may be incorrect given that ISO-8601 states that [when no UTC offset is provided, "the time is assumed to be in local time"](https://en.wikipedia.org/wiki/ISO_8601#Local_time_(unqualified)).

Some APIs may accept date-time values that lack a time-offset attribute. For such APIs, this will be a breaking change.

## Rationale and Alternatives

This RFC aims to increase the clarity and precision of our guidance while at the same time bringing it into compliance with IETF RFC-3339.

## Unresolved Questions

None. Long live IETF RFC-3339.

0 comments on commit f66422b

Please sign in to comment.