Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Plugin to show database size (% of available space or in MiB) #5496

Merged
merged 7 commits into from
Feb 10, 2020

Conversation

dlvoy
Copy link
Contributor

@dlvoy dlvoy commented Jan 30, 2020

This plugin shows pill with information about size of database,
can display both % of available (declared) max size, or absolute size in MiB

This is useful for long-time users on free tier mongoDB, to indicate when to clean-up DB and prevent issues when DB size quota is exceeded unnoticed.

When size reached default or configured warning/urgent threshold - it highlights yellow or red
Includes: icon (with sources), translation support, README entry & tests

dbsize_plugin_pill

for DBSIZE_IN_MIB=true

dbsize_pill_mib

@dlvoy dlvoy requested a review from sulkaharo January 31, 2020 19:11
@sulkaharo
Copy link
Member

Heh, our DB is a bit bigger than usual. :) This looks great! Given the frequency of database issues, can you change this so it's enabled by default?

Screenshot 2020-02-02 at 16 32 07

@sulkaharo
Copy link
Member

I'm not clear on why the assets/fonts/pluginicons-v1.0/ folder was included? I'd prefer to keep the repo as clean as possible, where is this needed?

@dlvoy
Copy link
Contributor Author

dlvoy commented Feb 2, 2020

@sulkaharo you have biffy mighty self hosted or pro DB plan :)

It is not possible to detect how much space you've got from provider, default 496MiB is for free mongodb/heroku tier - change DBSIZE_MAX to that value where your DB limits (100%) is, and other (DBSIZE_WARN & DBSIZE_URGENT - for warning levels.

@sulkaharo
Copy link
Member

@dlvoy this is actually just the $5/month Digital Ocean droplet! Can you comment on the extra folder?

@dlvoy
Copy link
Contributor Author

dlvoy commented Feb 2, 2020

@sulkaharo problem with icons is - i wanted to add them to nsicons, but all i found in repo was
resulting icon font & raw binary files (TTF, WOFF) which i cannot easily extend with new icons.
Therefore i created new one and included all sources (assets/fonts) and documented (in assets/fonts/README.md) how to make additions to that icon set and update project with new icons.

That way, if someone will need to add yet another icon, he goes to that folder, use it on https://icomoon.io/app/ to add new icon, updates it and main.css with generated font - and pushes update to repo :)

@dlvoy
Copy link
Contributor Author

dlvoy commented Feb 2, 2020

I will update it to have it enabled as default :) 👍

@dlvoy
Copy link
Contributor Author

dlvoy commented Feb 2, 2020

@sulkaharo I've tried to set plugin as default with commit 6fb3008, but i am still not expert with all NS internals - could you check is it ok/enough?

@sulkaharo
Copy link
Member

@dlvoy I get the readme and the json file for the fonts, but the font demo files in the pluginicons-v1.0 folder are not needed, are they? The readme makes no mention of that folder and none of the files in the folder are used by the Nightscout runtime and/or the font generation and so they probably shouldn't live in the repo.

@dlvoy
Copy link
Contributor Author

dlvoy commented Feb 3, 2020

@sulkaharo you have right - i left them because it is exact content of generated ZIP file from icomoon.
But with source/project JSON and README.md it should be all it is needed to update main.css.
I will delete them!

@sulkaharo
Copy link
Member

One last comment - on testing setting the warning levels to higher than default, I realised it'd be much easier for most users if the warn and urgent thresholds were defined as a percentage of the max. This way even people who have a larger database would typically not need to set more than one variable (and not do math on what the warn/urgent values should be). :)

@dlvoy
Copy link
Contributor Author

dlvoy commented Feb 5, 2020

@sulkaharo Thanks for idea! I've modified plugin to be % configured, updated README.md accordingly and added two tests to check if new setting works

@jasoncalabrese
Copy link
Member

Codacy Here is an overview of what got changed by this pull request:

Issues
======
- Added 12
           

Complexity increasing per file
==============================
- lib/plugins/dbsize.js  14
         

See the complete overview on Codacy

@sulkaharo sulkaharo merged commit 44ab2a7 into nightscout:dev Feb 10, 2020
@andrew-dixon
Copy link
Contributor

I've noticed on the dev branch that the option on the menu doesn't save if you want to switch off the database size pill, so it is not possible to switch it off.

@dlvoy
Copy link
Contributor Author

dlvoy commented Feb 13, 2020

@andrew-dixon confirmed, it seems that code forces to have it always set instead of have it set only by default, my fault, i'll fix it!

@dlvoy
Copy link
Contributor Author

dlvoy commented Feb 13, 2020

@sulkaharo can you help?
I want to have plugin dbsize shown by default (and checked on plugin list) but also allow to turn it off - but do not know how to do it:

  • if i force that plugin it is always shown, and i cannot uncheck it
  • if i remove it from list - it is not shown by default and user need to check it on the plugin list

forcing is done at lib/settings.js: adjustShownPlugins with settings.showPlugins += ' delta direction upbat dbsize';

@dlvoy
Copy link
Contributor Author

dlvoy commented Feb 17, 2020

I think i fixed it! at PR #5529

@andrew-dixon
Copy link
Contributor

@dlvoy I've spotted another potential issue with the implementation. My database filled up and Nightscout stopped getting data but the pill said 25% as that was the "data size" but when I hovered over it, the "database file size" was 100%. I didn't notice this at first as I saw the 25% and assumed the issue must be with the connection to Dexcom or something and was trying other things to resolve the issue. Had I seen the 100% on the pill I would have probably got to the issue much quicker. So I'm not sure if the pill is outputting the wrong size or if needs to output both or maybe just whichever is greater?

@dlvoy
Copy link
Contributor Author

dlvoy commented Apr 13, 2020

@andrew-dixon i tried to explain that a little bit in README section, in NOTE. Because the way MongoDB allocates files, database file size gets 100% relatively quickly, when it jumps from 256MiB to 496MiB, so when used as size source it would show 100% and red pill when database is 51% full of data - for most of mLab free tier people - way too soon.

In configuration you can set DBSIZE_WARN lower, to be warned sooner, and i set warn level on relatively low 60% of capacity.

Unfortunately, there is no way to check fragmentation of free space inside sparse, so it may fail at 60% or work without issues at 95%. After mouse hover on pill you will see both numbers thou, and doing repairDatabase (like using mLab Tools -> Commands tab and dropdown, or with mongodb client, like Robo 3T) will rebuild database file and defragment free space.

@andrew-dixon
Copy link
Contributor

@dlvoy I've actually just had this DB file size issue again tonight:

Screenshot 2020-04-13 at 21 56 27

Once you hit that 100% on the file size, Nightscout stops being able to receive new data, and from what I've seen this always occurs first, e.g. the file size is always larger than the "data size".

After running a repair DB on mLab I end up like this:

Screenshot 2020-04-13 at 21 58 26

With the file size still larger than the data size. So wouldn't it be better to use the file size and not the data size or at least use whichever is larger?

@dlvoy
Copy link
Contributor Author

dlvoy commented Apr 13, 2020

@andrew-dixon but that is not correct, when you hit 100% on file size you have not run out of space inside database! It only means that mongodb will not be able to allocate new extent. I run my NS instance with 100% of file size and it still can get new data since months:

my_ns

As long as its internal organisation inside extents allows it - it will accept data. In your case, repairDatabase both defragmented data and allowed for smaller count of extents. And extents are allocated not linearly, so you will always have file size either 240MiB o 496MiB (i do not remember sizes for smaller tiers). As long data fit in 240MiB extent, it will use it, but then with brutto 250MiB of data + indexes + stuff your file size will jump to 496MiB but you will still have aprox. 49% free space left inside for data.

How much it can take - it depends, because records are also allocated in powers of-2 sizes and they left holes when deleted, so it produces fragmentation problem - like with old FAT file systems.
You can find details why is that here: https://blog.mlab.com/2014/01/how-big-is-your-mongodb/

And of course there there are configurations of mongodb engine with replication and stuff that do not suffer from it - it is more or less because we use it on small scale with development, free tier :)

@andrew-dixon
Copy link
Contributor

@dlvoy Well, I can only go by my own experience, but both times my Nightscout has stopped working recently the "Database file size" has been at 100% and the "Data size" at about 26% and doing the repair database on mLab as "fixed" the issue and it has started working again, once the "Database file size" is no longer at 100%. Maybe it is something specific to mLab, but it certainly doesn't appear to work any more once you hit 100% on the "Database file size".

@andrew-dixon
Copy link
Contributor

@dlvoy Just to let you know, that since migrating from mLab to Atlas (due to the mLab shutdown) the database size pill no longer appears, despite still being turned on under the "Show Plugins" section. I assume this is because it can't get the data required from Atlas in the same way it did from mLab.

@dlvoy
Copy link
Contributor Author

dlvoy commented Jul 13, 2020

@andrew-dixon indeed! db.stats() reports fileSize = 0 even for non-empty database (since it does not use mmapv1 storage engine)
I will try to fix this. Thanks for finding that out!

njmo added a commit to njmo/cgm-remote-monitor that referenced this pull request Oct 7, 2020
* Logic correction

* Fix tests failing in dev (nightscout#5127)

* * Fix reporting test to match the new output
* Fix number formatter to return the expected 0 when data is NaN
* Remove excessive logging during test runs from cob plugin

* Run all tests in one go

* Fixes D3 invocations for tests. Note this also removes transition timers (most of which seemed to be timed so fast they actually had no effect as the timer was faster than what it takes to draw a frame in Nightscout)

* Run tests independently

* Try not running tap-set-exit

* Remove tap-set-exit

* Performance fixes (nightscout#5134)

* Further fixes to profile data fetches, change the client to not create excessive amount of date objects

* Sort entries once on load and then rely on the sorting to find out the largest and smallest value

* Make the renderer reuse Date objects instead of instantiating a huge amount of dates all the time

* Don't load retro data if not needed. Merge retro data faster if it's present. (nightscout#5141)

* Updated Alexa template to comply with new requirements

* Load data in one pass (nightscout#5142)

* Fix layouting and load data in one go. Bonus points if you can fix the rendering for this

* fix focus target lines and high and low lines

* Remove debug logging. Change profile functions to clear the cache on new data, instead of calculating heavy hashes

* Remove unused code

* Fix tests

* Have Travis run tests on Node 10 and 12, not 13

* D3 Upgrade Residual Cleanup (nightscout#5140)

* fix forecast limit logic

(cherry picked from commit e88ce7e5d1f5fb12c71ae67da4131ff1a50940c9)

* fix minimum focus forecast time

* make min forecast 30 min

* fix forecast time max to client focusRangeMS instead of 30 min (nightscout#5143)

* Fix initial forecast point display

* Fix forecast time randomly resetting to 30 minutes for openaps users

* Stop Focus Circles from Eating Entries (nightscout#5145)

* stop focus circles from eating entries

* fix forecastCircles remove

* resolve possible key collision

* Fixes a major bug where plugins were ran against a sandbox twice, causing issues with predictions. Fixes the look ahead timings.

* Fix forecast behaviour (nightscout#5160)

* stop focus circles from eating entries

* fix forecastCircles remove

* resolve possible key collision

* Fixes a major bug where plugins were ran against a sandbox twice, causing issues with predictions. Fixes the look ahead timings.

* Refactor of how prediction data is collected

* Update node pushover library to fix crash in case Pushover service is down

* adding list of supported APIs versions (GET /api/versions)

* Fixed a few missing definitions

* API3: add locking documents using isReadOnly flag

* Translation improvements

* Defined `translate()` in upbat plugin

* Migrated titles to use translate()

* Migrated static intent titles to use translate()

* Misc fixes for tests (even though they didn't fail 🤔)

* API3: testing isReadOnly feature

* API3: more readonly field name variants

* Added instructions on how to update skills/agents

* fix devicestatus retro merge (nightscout#5193)

* Turkish language updates (nightscout#5192)

* Turkish language updates

* in to Languages Part Turkish added

* in to Languages Part Turkish added

* Fix falsely suspended timeago alarms (nightscout#5170)

* Fix continuous suspension of the timeago alerts

The default hearbeat-setting is 60 seconds, so the delta between two
timeago-checks will always be >15 seconds and the timeago-alarms will
always be suspended (that's what Papertrail also shows).

To fix this, make the delta-check heartbeat-setting-dependant and also simplify
the code by using just 1 variable.

* Add test that verifies the hibernation detection behaviour

The real-world test would be to actually wait for a couple of minutes (with 2 *
heartbeat of default settings) in the unit test, but this is not feasible, so
just modify the heartbeat-setting to a lower value.

I tested it by only running tests inside `tests/timeago.test.js` and by actually
deploying this code and testing the alarms with Pushover and reading the logs in
Papertrail.

Before this change, I saw a 'Hibernation detected' log every minute. After this
change, I didn't see it anymore, probably because the app wasn't actually
hibernated (yet).

* Take sulkaharo's feedback into account and differentiate
between client and server (by introducing it in sandbox.js).

On the client the behaviour is different from the server:

> On client, the issue is browsers stop the execution of JS if the window is not
> visible and the alarm is falsely triggered immediately when the execution is
> resumed, so we need to suspend the alarm for ~10 seconds after the execution has
> resumed to give the client time to update the data to prevent false alarms.

While on the server, the default heartbeat from 60s needs to be taken
into account to prevent the timeago alarm from falsely triggering.
So detect hibernation there if the last check was more than 2 heartbeats ago.

* Fix the tests by adding settings to the context,
which is now required by timeago.

Also, change the timeago test a bit so that it both succeeds
when testing in isolation as when testing it along with the other tests.

* Adding to nightscout#5121 (nightscout#5126)

* changed gitter shield to discord

* changed discord shield text to discord chat instead of just chat

* changed gitter shield to discord

* need to fix my md error

* Update CONTRIBUTING.md

Few more tweaks

* Update CONTRIBUTING.md

* Update CONTRIBUTING.md

* Update README.md

Change Discord URL to be an invite link instead of a direct link to the channel (which doesn't work if you're not already in it).

* Extra info (delta and last measurement time) on clock view.  (nightscout#5151)

* Parametrized clock view

* Parametrized clock view

* Wording tweaks to go with nightscout#4810 (nightscout#4866)

* mmol/L wording tweak in Readme

* Various wording & clarity tweaks in the Readme

* Heroku template update to reflect mmol allowance tweak

* Update README.md

* Update minimum device requirements

Ran some proper browser test suites, determined actual minimum specs for the main site.

* GitHub actions build (nightscout#5168)

* Run tests using GitHub Actions

* Node 10

* Test CI fails

* Use npm to run tests

* Fix package json to run tests

* Enable v3 TEST api for both development env and CI

* Run CI on both Node 10 and 12

* Allow downgrading Mongo

* Move the units configuration detection to a place where it's guaranteed to catch all invocations

* Fix the check for environments without the units setting

* Rename xdrip-js to xdripjs (nightscout#4959)

* rename xdrip-js to xdripjs

* update readme for xdrip-js name change

* update from CGM to XDRIPJS label

* change label from all caps to mixed case for xDripJS

* change pill label back to CGM

* Added customization step for Alexa skill updates

* Language Update: added missing German Translations (nightscout#5172)

* language Update devicestatus collection

* language Update Admin-Tools

* changed wording for admin authorization

* typo corrected (admin auth)

* language Updates for Admin Tools database cleanups

* Don't use dynamic scale unless entries in database (nightscout#5195)

* don't use dynamic scale unless have entries

* fix report crash when no entries

* set forecastTime correctly when no entries present

* Language Matters: change "Normal" to "In Range" in glucose distribution reports

* Added/updated TOC's

* set auth dialog width to client width if smaller than default width

* More hebrew translations

* Added note regarding the use of the Alexa online simulator

* fix focus scale hour format

* trip open-top size to fit

* fix clearing alarming when clearning CurrentSGV

* do not set direction if not current

* Handled 0 for pump reservoir

* rollback npm-shrinkwrap.json

* Fix for distributionpage

bug that caused hour 23 to always be active even after uncheck

* Russian translation update edit

* Use default entries count instead of distributed number literals

* Handle mmol to mgdl conversions with a constant reference (nightscout#5274)

* Added sanity check for the bridge interval value (nightscout#4717)

* Added sanity check for the bridge interval value, setting minimum allowed value to 30 seconds and maximum to 5 minutes. This is to avoid input of very low values which might overload the dexcom servers.

* Added missin ';'

* Fixed typoe in comment

* Added test for default interval (not set in config)

* Set lower limit to 1 second

* Use auth tokens in api-secret (nightscout#5214)

* Allow auth tokens to be passed in the api-secret header and used in the client in place of the API secret

* Fix unit test

* Fix admin test

* Reload page when token is used as a secret

* Fix dependency vulnerabilities

* Added basal and bolus averages besides TDD and carbs (nightscout#4216)

* Remove the leading 0 from the version, so we can comply to how version numbering should really work

* Removed unsused var ic (nightscout#5288)

* Use constants instead of number literals for http status codes (nightscout#5276)

* Updated release name and number (nightscout#5280)

* Allow use cgm-remote-monitor as npm package. (nightscout#4847)

To use cgm-remote-monitor as npm package, the main attribute is required.

* Add 4 hour option to view (nightscout#5289)

* Revert "change default back to 3HR"

This reverts commit e60ff3a.

* shorten HR to H to avoid line-wrapping on mobile

* try larger label font: 35 instead of 25 (vs. 40)

* add comma

* deviceInfo.recent null check

* default back to 3, w/ 4 as an option

* re-add H to single-digit hours

* * Don't use cache manifest all all for development
* Add 4 hours option to view and change the labelling to remove language issues
* Have page scale the minor pill widths more gracefully

* [Clock] Fix incorrect delta calculation (nightscout#5286)

* Fix !delta check for delta == 0

* Fixed delta comparison

* Hide unit suffix for SMBs issued by AndroidAPS (nightscout#4771)

* Fix issues from `npm audit`

* Read BG targets in using mmol when server is in mmol mode (nightscout#5291)

* Read BG targets in using mmol when server is in mmol mode

* Change the Heroku template to match the new logic

* Deal with mmol targets being set using commas

* Unbreak JSON serialization failing on the /properties API due to circular data reference

* Bump version to 13.0.0

* Release ref update v2 (nightscout#5301)

* Updated release name and number

* Added missing version number

* Added missing version number

* Fix auth dialog sizing error (nightscout#5315)

* Fix auth dialog sizing error (nightscout#5314)

* Fix auth dialog sizing error

* Fix Client Init After Auth

(cherry picked from commit 1bf416c)

* update NS minor version

* Release 13.0.1 (nightscout#5329)

* Release ref update v2 (nightscout#5301)

* Updated release name and number

* Added missing version number

* Added missing version number

* Fix auth dialog sizing error (nightscout#5315)

* Fix auth dialog sizing error (nightscout#5314)

* Fix auth dialog sizing error

* Fix Client Init After Auth

(cherry picked from commit 1bf416c)

* update NS minor version

* Bump version to 13.0.2-dev

* fix some random test failures (nightscout#5341)

* fix some random test failures

* use typeof to test for existence

* Added support for asking delta

* Added time reference

* Made delta reading more informative

* Corrected time reference

* Try shortening the response

* Revert attempt

* Updated templates and documentation

* Minor improvement in response when delta is 0

* German translations improved and added (nightscout#5360)

* Fix Alexa Launch and SessionEnded Requests (nightscout#5377)

* Fix Alexa Launch Request

* Allow LaunchRequest to handle intent if set, change shouldEndSession from string to bool

* Fix SessionEndedRequest

* Fix nightscout#5149 - discord link on CONTRIBUTING.md doesn't do anything (nightscout#5380)

* Fix nightscout#5146 - display of treatment with only Fat and Protein set (nightscout#5381)

* Basic report page style fixes and updates (nightscout#5387)

* Add missing Polish translations and improve existing (nightscout#5382)

* Add missing Polish translations and improve existing

* Improve translations

* Addressed virtual assistant usage with Authentication Roles (nightscout#5388)

* Fix nightscout#5347 - Addressed auth roles

* Unification

* Fix timeago alarms (again). The changes to the rendered had an unintended consequence of triggering the timeago detection less frequently, causing the code to think the client has been hibernating, thus suppressing the alarms. The update changes the clock to be updated more frequently (this updating the hibernation detection), fixing the issue

* Remove the server side test

* Fix Graph Display Without Recent Devicestatus (nightscout#5409)

* Update Russian (nightscout#5415)

Corrected major and minor misprints and mistakes - particularly in variables, new translations added

* Add server teardown ability (nightscout#5410)

* adding teardown event to ctx.bus

* adding teardown support for mmconnect and bridge plugins

* Additional German Translations and corrections (nightscout#5405)

* Cleaned up changed translations

* Added Virtual Assistant Translations

* Fix nightscout#5188 - move predictions to bundle and don't render chart on predictions offset change (nightscout#5395)

* Fix nightscout#5188 - move predictions to bundle and don't render chart on predictions offset change

* Fix predictions show for day to day

* Move toolbar and authentication status to partial and include on each page (nightscout#5393)

* Move authentication status to partial and include on each page

* Move toolbar to partial

Co-authored-by: Sulka Haro <[email protected]>

* Virtual assistant code simplification (nightscout#5400)

* Moved duplicate plugin code to single location, and small improvements

* Defined _each()

* Pr/5379 (nightscout#5441)

* Release 13.0.1 (nightscout#5329)

* Release ref update v2 (nightscout#5301)

* Updated release name and number

* Added missing version number

* Added missing version number

* Fix auth dialog sizing error (nightscout#5315)

* Fix auth dialog sizing error (nightscout#5314)

* Fix auth dialog sizing error

* Fix Client Init After Auth

(cherry picked from commit 1bf416c)

* update NS minor version

* Added handlers and translations for CGM info

* Defined translate()

* Fixed sensor state reference

* Improved wording for tx age response

* Improved wording for session duration response

* Updated documentation and templates

* Updated README.md TOC and a reference to it

* Added CGM battery info

* Added unit reference to CGM battery levels

* Added handlers and translations for CGM info

* Defined translate()

* Fixed sensor state reference

* Improved wording for tx age response

* Improved wording for session duration response

* Updated documentation and templates

* Updated README.md TOC and a reference to it

* Added CGM battery info

* Added unit reference to CGM battery levels

* Updated API reference in Google Home template

Co-authored-by: Caleb <[email protected]>

* Volunteer for Polish translations (nightscout#5396)

* Api3 output renderers (nightscout#5425)

* APIv3: adding framework for various output renderers

* APIv3: adding xml output renderer

* APIv3: adding csv output renderer

* APIv3: documenting supported output renderers

* APIv3: testing output renderers

* Restore glucose distribution test (nightscout#5434)

* Increase coverage of tests on units utility and clean up timeago test (nightscout#5435)

* Increase coverage of tests on units utility

* clean up timeago test

* Refactor to encapsulate duplicated settings logic (nightscout#5426)

* Encapsulate duplicate settings checks inside functions

* Simplify settings::isAlarmEventEnabled()

* Send coverage reports to Codacy (nightscout#5444)

* Send coverage reports to Codacy

* Action secrets may not be read from forks :(

* Let's see if this fixes the path & key passing

* Ok one more try for the Actions env

* Run tests and coverage separately

* Try increasing the admintools test runtime for Node 10

* Run tests only once

* Resolve unnecessary uses of eslint-ignore (nightscout#5436)

* Resolve unnecessary disabling of no-undef eslint rule

* Resolve unnecessary disabling of no-prototype-builtins eslint rule

* Resolve unnecessary disabling of no-unused-vars eslint rule

* Resolve unnecessary disabling of no-empty eslint rule

* Fix eslint errors and add npm script for eslint (nightscout#5427)

* re-enable auth check for device status routes

* Resolve eslint errors

* Add npm script for eslint

* Correct regex for express extension middleware and add tests for expected behaviour

* Resolve lint error in virtual assistant base

* Update index.js

* Update index.js

* Remove redundant checks on entry ID (nightscout#5440)

* Run CI Action for Pull Requests

* Update DayToDay report for Loop Overrides (nightscout#5452)

Add Loop override name/reason as text to the grey bar at the top of the graph.

* Fix earlier merge error with predictions having moved to the report bundle

* fix brushing loop (nightscout#5499)

* Update README.md (nightscout#5480)

Clarified that the "bridge" plugin is for Dexcom Share ("Dexcom" didn't appear at all in the read me), fixed a few typos, and added line 444 about the BRIDGE_SERVER variable.

* Added period of days into headline of glucose distribution and percen… (nightscout#5428)

* Added period of days into headline of glucose distribution and percentil chart report

I make screencopies of the glucose distribution and percential chart report for my diabtes consultant and had to manually add the period of days to the report everytime because it was not shown in the report itself.
I added the period of days this with a small number of lines of code and think this is helpful for other too.

* removed comments as requested

removed comments as requested

* Camelcase for new variables reportPlugins, firstDay, lastDay, countDays

* forget to save the change of reportPlugins in percentile.js

* Move app caching to a service worker (nightscout#5504)

* Move app caching to a webworker

* Code cleanup

* Code cleanup

* Make Codacy happy

* More parentheses

* Added indexes to 'entries' and 'treatments' along with other updates (nightscout#5463)

* Added compound indexes for treatments and entries collections. Updated ensureIndex to createIndex in mongo-strage.js as ensureIndex has been deprecated. Finally, updated testing/populate.js to be compatible with more recent versions of the node driver, as well as fixing a path issue.

* Fixed missing end quote in lib/server/treatments.js. Changed all newly added double quotes to single quote to match style guide.

* Removed indexes that referenced key600.

* Fix: Round interporlated mg/dL value to an integer

* Plugin to show database size (% of available space or in MiB) (nightscout#5496)

* Database size plugin - pill that displays current mongoDB database size

* Enabled dbsize by default

* Fixed bug with dbsize not shownig when size is (rounded) 0% but real bytes > 0

* Cleanup & update to iconfont generation manual

* Changed how warning/urgent levels are configured - from absolute MiB to percentage of DBSIZE_MAX

* Trying to fix random fail of APIv3 tests (nightscout#5519)

* APIv3: isolating documents from tests (not allowing clashes of calculated identifiers)

* removing unused async keyword

* client - mobile - Axis label font is scaled on small screens (nightscout#5512)

On phones or other small screens, the axis labels (especially x axis)
were previously an unreadable jumble of too-close letters

* Split view (nightscout#5518)

* Adds a 2, 3, 4 and 8 way split view option

* Updated description

* Generate the table on demand, so any number of sites from 1 to 8 generates a sensible layout

* Update readme & don't crash if a name is missing

* Allow flagging specific settings to be not exposed the /properties and /status APIs (nightscout#5525)

* Add more variables to the special list

* [DEV][FIX] Fix dbsize plugin to make it hideable again (nightscout#5529)

* [FIX] Making dbsize plugin default but hideable - removed its forced show state

* Removed unused lodash dependency

* Removed duplicate if statement (nightscout#5531)

Removed the additional if statement checking for the loop specific developer team id. This since the exact same if statement existed just above it.

* Update Dutch translations (nightscout#5532)

* Fix settings test

* Update version to 13.1.0

* Fix topbar collapse on small screens (nightscout#5562)

* Fix top bar collapsing on small screens

* Fix wide button array overflowing the button bar

* Option to switch off bolus amount outputs (nightscout#5522)

* Option to switch off bolus amount outputs (nightscout#5514)

* Fixing issue with carb value not be output when set to "none" (nightscout#5514)

* Adding additional output options (nightscout#5514)

* Adding environment variable option for 'x U and Over' option.

This option is BOLUS_RENDER_OVER with a default value of 1 and the value can be an integer or a float, e.g. 0.3, 1.5, 2, etc...

* Adding change to change the font size depending on the bolus value.

* Merge two "all" options to create an option that displays as SMB had.

* Fix d3 portrait to landscape brush failure (nightscout#5638)

* fix d3 portrait to landscape brush failure

* fix client.renderer.test for highlighBrushPoints function prototype change

* fix highlightBrush

* move brush reset inside check for valid brush

* Sanitize data from manual careportal entries so only fields with actual data are sent to the server (nightscout#5619)

* do not redirect to profile editor by default (nightscout#5671)

In a default configuration, there is no treatment data.  The code to redirect
the UI to the profile editor is buried deep within the chart rendering code for
basals.  This plugin is only supposed to go into action when enabled via
ENABLE=basal.  This commit fixes first-use experience for the default
configuration intended to draw real-time CGM traces and no basal information is
expected.  Since no basal information is expected unless plugin is enabled via
ENABLE=basal, this allows skipping instead of redirecting to the profile editor.

* Fix Issue nightscout#5486 - Device Status Days Feature (nightscout#5651)

* Device Status Days Feature

* Edits per review from @sulkaharo

* Configurable clock views (nightscout#5625)

* Configurable clock views

* Configurable clock views

* Configurable clock views

* Configurable clock views

* Configurable clock views

* Configurable clock views

* Update README.md

* Update README.md

* Configurable clock views

* Add remote bolus/carbs + otp entry for loop (nightscout#5598)

Add a remote bolus entry field for users on Loop, along with support for an OTP field

* Sometimes at the very start no profiles provided. (nightscout#5591)

At the first start the nightscout is crashed if profile not full.

* Fixes nightscout#4991 - Now selects basal profile based day by day (nightscout#5572)

* Test profile settings

* NPM Version change

* Use console log

* Use console log for client

* Use console log for client.sbx

* Use console log for client.ddata

* Use console log for client again

* revert

* Added multi-profile reporting capabilities

Co-authored-by: VIS TFS Admin <[email protected]>

* prepare hotfix for MMConnect/EU - 2020-06-28

Prepare to handle issue nightscout#5719.  This patch adjusts dependencies to
target a community edition fork of minimed-connect-to-nightscout.  The
new dependency targets information provided to begin addressing
changes to Medtronic Carelink services starting late June 2020.

* bump pointing at right tag

* prepare hotfix for MMConnect/EU - 2020-06-28

Prepare to handle issue nightscout#5719.  This patch adjusts dependencies to
target a community edition fork of minimed-connect-to-nightscout.  The
new dependency targets information provided to begin addressing
changes to Medtronic Carelink services starting late June 2020.

* bump pointing at right tag

* hotfix attempt 2 - carelink 2020 sso updates

* hotfix 3 - attempt 3 at carelink 2020 sso updates

* attempt 4 at hotfix for nightscout

Based on more reliable version of minimed-connect-to-nightscout....
This is testing the hotfix.  When it works, we will bump this one more
time with the newly released version.

* hotfix 5 - incorporates latest axios changes

* Fix for boluscalc issue (nightscout#5729)

Boluscalc fix & remove integer validation from BG input field

* npm install --save minimed-connect-to-nightscout@^1.4.0

* Change DISPLAY_UNITS to use readENV's default value and added several tests for DISPLAY_UNITS (nightscout#5708)

readENV() was hard coding the default value of DISPLAY_UNITS, and
ignoring the default value for no particular reason. Fixed that. Also, I
added a full test suite for DISPLAY_UNITS environment settings to make
sure that it works as intended. Finally, I've added the console log for
the DISPLAY_UNITS since there's no particular reason why we log that setting
and not others.

* Fix audit errors, button order (nightscout#5694)

* * Update packages giving npm audit errors
* Fix Mongo test that broke after update (now uses async/await on getting the connection)
* Restore original navigation bar button order

* Disable Node 10 tests

* Fix temporary target cancellation

* Added documentation on the use of Alpha Testing (nightscout#5784)

* Wip/bewest/mmconnect eu (nightscout#5731)

* prepare hotfix for MMConnect/EU - 2020-06-28

Prepare to handle issue nightscout#5719.  This patch adjusts dependencies to
target a community edition fork of minimed-connect-to-nightscout.  The
new dependency targets information provided to begin addressing
changes to Medtronic Carelink services starting late June 2020.

* bump pointing at right tag

* hotfix attempt 2 - carelink 2020 sso updates

* hotfix 3 - attempt 3 at carelink 2020 sso updates

* attempt 4 at hotfix for nightscout

Based on more reliable version of minimed-connect-to-nightscout....
This is testing the hotfix.  When it works, we will bump this one more
time with the newly released version.

Co-authored-by: Sulka Haro <[email protected]>

* * Updated several packages to remove issues from NPM audit
* Fix excess logging in settings.js
* Removed heapdump package, which was causing issues for some users

* * Limit the default number of profiles returned by the API to fix issues with users who are syncing a large amount of profiles from an APS.
* Fix profile reporting

* Upgrade Helmet to 4.0.0

* CSP and service worker improvements (nightscout#5856)

* Add connectSrc for Safari compatibiity
* Add new font URL for Google Fonts compatibility
* Reload on re-registering the worker
* Change Mongo version in github to fix builds

* Serve the CSP to everyone

* Split view CSP support (nightscout#5864)

* Parse split view frames into frameAncestors

* Re-enable CSP configuration (nightscout#5867)

* Re-enable CSP configuration

* Bump share2nightscout-bridge plugin

Use latest update from share2nightscout bridge to
make things easier.  It contains an updated
default for OUS users.

* feat Add robots.txt to disallow site crawling

* Fix dbsize for usage with Atlas (nightscout#5962)

* Openaps performance improvement (nightscout#5945)

* improve openaps plugin performance

* more performance improvements

(cherry picked from commit 076a2dd)

* correct setting notEnacted variable

* remove unnecessary debug logging

* Adapt to MongoDB Atlas (nightscout#5893)

* Fix Issue nightscout#5763 - Change $.ajax to /api/v1/profile (nightscout#5704)

* Bug fixes for Service Worker (nightscout#5970)

* Fix service worker refresh for Firefox

* Improve logging for service worker initialisation

* Skip browser cache for service worker precaching

* Prevent `Partial Content` responses in `fetch` by stripping `Range` header

* Prevent calling `filter` on an undefined property when service worker cache is empty

* Bug fixes for Service Worker

*    Fixes nightscout#5920
*    Fixes nightscout#5943

* Update service-worker.js

Removed the MP3 files from the preload to fix issues with webkit-based browsers

Co-authored-by: p5nbTgip0r <[email protected]>
Co-authored-by: Sulka Haro <[email protected]>

* Optimize Nightscout database usage (nightscout#5947)

* On periodic polls, only load delta for CGM data, treatments and device statuses
* Serve basic CGM data API queries from in-memory cache. Increases the Nightscout memory footprint but should significantly reduce the Mongo load
* Serve device status, CGM and treatment records from memory cache
* Support count parameter in /profile

* Bumping version to 14.0.0 given this is a relatively large update and we want people on Atlas to all migrate to this version

* Remove logging statements

* fix brushing recursion

* Normalize treatments to support absolute doses from the amount field

* Add Loop Carbs foodType, absorptionTime to Reports for ISSUE nightscout#5701 (nightscout#5702)

* add carb foodType, absorptionTime to reports

* Update README to point to new docs

* Fix `Treatments` report for `mmol/L` users

Fixed a typo to a client function name

* Bump version to 14.0.1

* Bump dev to 14.0.2

* Serve Last-Modified header for the service worker to help with some browsers misdetecting caching

* Cleaned old appcache references

* * Remove unnecessary logging to help with Papertrail limits
* Load more treatments and entries to fix caching issues (need to add better cache invalidation to really fix this)

* When merging inserts and updates from the database, ensure we always use the new data over the old data

* Bump treatment delta loading to four hours

* One more increase to treatment load time to cover long overrides

* * Bump version to 14.0.3
* Fix a bug in the REST API query for profiles

* Bumped up the number of treatments loaded / day for reporting

* Fix reports unit test

* Bump treatments default limit default to 1000 objects for queries that include other query parameters

* * Require created_at for Treatments on insert
* Refactoring the cache: moved to another file and support flushing from bus events

* Add support for CGM data and device statuses. Refactor dataloader to use the new model and reduce queries back down

* Fix data order for REST API

* * Add cache update events to websocket API
* Remove the validation for created_at in REST API ;(

* Remove excess logging

* Bump version to .4

* Bump version to 14.0.5 and fix nightscout#6050

* Fix Pebble API detecting mmol units from settings

* Make settings parsing whitespace tolerant

* * Fix security test
* Change boot and caching to expose Mongo connection errors

* Don't report an error on every reconnect

* Less intimidating error page on start, which also checks for api_secret

* Add file missing from last commit

* Fix tests

* Remove require statement breaking deploys

* Update --feature-request--.md

* Update --bug-report.md

* Update --individual-troubleshooting-help.md

* Fix memory leak and cache update issues in 14.0.4 (nightscout#6133)

* Fix a memory leak in 14.0.4
* Fix linter error in ddata.js
* Move data retention periods to caching
* Update _id of inserted entries and device status so merging to cache works correctly
* Reset the data in ddata before updating
* Fix typo on entry cache retention period
* Have device status cache retention period follow configuration
* Fix _id injection in treatments

* Add error cat to error page

* Fix MONGODB_URI reference in error message

* Bump version to 14.0.6

* Support uploading device statuses in batches (nightscout#6147)

* Support uploading device statuses in batches
* Correctly report batch insertion results

* Make empty cache detection a bit more aggressive to account for cache flush and data insert happening concurrently

* Update README.md

Explicitly link to the application template in Github

Co-authored-by: inventor96 <[email protected]>
Co-authored-by: Sulka Haro <[email protected]>
Co-authored-by: Jeremy Cunningham <[email protected]>
Co-authored-by: PetrOndrusek <[email protected]>
Co-authored-by: Caleb <[email protected]>
Co-authored-by: Diabetlum <[email protected]>
Co-authored-by: Willem Fibbe <[email protected]>
Co-authored-by: John Weston <[email protected]>
Co-authored-by: ireneusz-ptak <[email protected]>
Co-authored-by: Lukas Herzog <[email protected]>
Co-authored-by: Jeremy Cunningham <[email protected]>
Co-authored-by: Jake Bloom <[email protected]>
Co-authored-by: David Jansson <[email protected]>
Co-authored-by: fedor apanasenko <[email protected]>
Co-authored-by: Jakob Sandberg <[email protected]>
Co-authored-by: Jakob <[email protected]>
Co-authored-by: Asbjørn Aarrestad <[email protected]>
Co-authored-by: lixgbg <[email protected]>
Co-authored-by: Harmjan Greving <[email protected]>
Co-authored-by: Bluefox <[email protected]>
Co-authored-by: Cas Eliëns <[email protected]>
Co-authored-by: Tanja <[email protected]>
Co-authored-by: Bartłomiej Szubert <[email protected]>
Co-authored-by: Andrew Dixon <[email protected]>
Co-authored-by: Petr Ondrusek <[email protected]>
Co-authored-by: Lukas Herzog <[email protected]>
Co-authored-by: jonfawcett <[email protected]>
Co-authored-by: Jonas Hummelstrand <[email protected]>
Co-authored-by: peterleimbach <[email protected]>
Co-authored-by: Adam Harrison <[email protected]>
Co-authored-by: Dominik Dzienia <[email protected]>
Co-authored-by: stephencmorton <[email protected]>
Co-authored-by: Simon Persson <[email protected]>
Co-authored-by: Cas Eliëns <[email protected]>
Co-authored-by: Ben West <[email protected]>
Co-authored-by: Matthew <[email protected]>
Co-authored-by: josep1972 <[email protected]>
Co-authored-by: fromorbonia <[email protected]>
Co-authored-by: VIS TFS Admin <[email protected]>
Co-authored-by: joracine <[email protected]>
Co-authored-by: Alexandre Viau <[email protected]>
Co-authored-by: Lennart Goedhart <[email protected]>
Co-authored-by: p5nbTgip0r <[email protected]>
Co-authored-by: kskandispersonal <[email protected]>
@inventor96
Copy link
Contributor

@dlvoy I was just doing some work on virtual assistant integration, and saw that you added support for that in your plugin. In order for virtual assistants to be asked about something, they need to be configured to recognize it in speech, which is done in Alexa's "Interaction Model" and in Google's "Language Template". The work you did here simply tells Nightscout how to respond when such a request comes in. Did you update the Interaction Model and Language Template in another PR? If not, no worries, I can include that in the work I'm doing now.

librarianmage pushed a commit to librarianmage/cgm-remote-monitor that referenced this pull request Nov 2, 2020
* Performance fixes (nightscout#5134)

* Further fixes to profile data fetches, change the client to not create excessive amount of date objects

* Sort entries once on load and then rely on the sorting to find out the largest and smallest value

* Make the renderer reuse Date objects instead of instantiating a huge amount of dates all the time

* Don't load retro data if not needed. Merge retro data faster if it's present. (nightscout#5141)

* Updated Alexa template to comply with new requirements

* Load data in one pass (nightscout#5142)

* Fix layouting and load data in one go. Bonus points if you can fix the rendering for this

* fix focus target lines and high and low lines

* Remove debug logging. Change profile functions to clear the cache on new data, instead of calculating heavy hashes

* Remove unused code

* Fix tests

* Have Travis run tests on Node 10 and 12, not 13

* D3 Upgrade Residual Cleanup (nightscout#5140)

* fix forecast limit logic

(cherry picked from commit e88ce7e5d1f5fb12c71ae67da4131ff1a50940c9)

* fix minimum focus forecast time

* make min forecast 30 min

* fix forecast time max to client focusRangeMS instead of 30 min (nightscout#5143)

* Fix initial forecast point display

* Fix forecast time randomly resetting to 30 minutes for openaps users

* Stop Focus Circles from Eating Entries (nightscout#5145)

* stop focus circles from eating entries

* fix forecastCircles remove

* resolve possible key collision

* Fixes a major bug where plugins were ran against a sandbox twice, causing issues with predictions. Fixes the look ahead timings.

* Fix forecast behaviour (nightscout#5160)

* stop focus circles from eating entries

* fix forecastCircles remove

* resolve possible key collision

* Fixes a major bug where plugins were ran against a sandbox twice, causing issues with predictions. Fixes the look ahead timings.

* Refactor of how prediction data is collected

* Update node pushover library to fix crash in case Pushover service is down

* adding list of supported APIs versions (GET /api/versions)

* Fixed a few missing definitions

* API3: add locking documents using isReadOnly flag

* Translation improvements

* Defined `translate()` in upbat plugin

* Migrated titles to use translate()

* Migrated static intent titles to use translate()

* Misc fixes for tests (even though they didn't fail 🤔)

* API3: testing isReadOnly feature

* API3: more readonly field name variants

* Added instructions on how to update skills/agents

* fix devicestatus retro merge (nightscout#5193)

* Turkish language updates (nightscout#5192)

* Turkish language updates

* in to Languages Part Turkish added

* in to Languages Part Turkish added

* Fix falsely suspended timeago alarms (nightscout#5170)

* Fix continuous suspension of the timeago alerts

The default hearbeat-setting is 60 seconds, so the delta between two
timeago-checks will always be >15 seconds and the timeago-alarms will
always be suspended (that's what Papertrail also shows).

To fix this, make the delta-check heartbeat-setting-dependant and also simplify
the code by using just 1 variable.

* Add test that verifies the hibernation detection behaviour

The real-world test would be to actually wait for a couple of minutes (with 2 *
heartbeat of default settings) in the unit test, but this is not feasible, so
just modify the heartbeat-setting to a lower value.

I tested it by only running tests inside `tests/timeago.test.js` and by actually
deploying this code and testing the alarms with Pushover and reading the logs in
Papertrail.

Before this change, I saw a 'Hibernation detected' log every minute. After this
change, I didn't see it anymore, probably because the app wasn't actually
hibernated (yet).

* Take sulkaharo's feedback into account and differentiate
between client and server (by introducing it in sandbox.js).

On the client the behaviour is different from the server:

> On client, the issue is browsers stop the execution of JS if the window is not
> visible and the alarm is falsely triggered immediately when the execution is
> resumed, so we need to suspend the alarm for ~10 seconds after the execution has
> resumed to give the client time to update the data to prevent false alarms.

While on the server, the default heartbeat from 60s needs to be taken
into account to prevent the timeago alarm from falsely triggering.
So detect hibernation there if the last check was more than 2 heartbeats ago.

* Fix the tests by adding settings to the context,
which is now required by timeago.

Also, change the timeago test a bit so that it both succeeds
when testing in isolation as when testing it along with the other tests.

* Adding to nightscout#5121 (nightscout#5126)

* changed gitter shield to discord

* changed discord shield text to discord chat instead of just chat

* changed gitter shield to discord

* need to fix my md error

* Update CONTRIBUTING.md

Few more tweaks

* Update CONTRIBUTING.md

* Update CONTRIBUTING.md

* Update README.md

Change Discord URL to be an invite link instead of a direct link to the channel (which doesn't work if you're not already in it).

* Extra info (delta and last measurement time) on clock view.  (nightscout#5151)

* Parametrized clock view

* Parametrized clock view

* Wording tweaks to go with nightscout#4810 (nightscout#4866)

* mmol/L wording tweak in Readme

* Various wording & clarity tweaks in the Readme

* Heroku template update to reflect mmol allowance tweak

* Update README.md

* Update minimum device requirements

Ran some proper browser test suites, determined actual minimum specs for the main site.

* GitHub actions build (nightscout#5168)

* Run tests using GitHub Actions

* Node 10

* Test CI fails

* Use npm to run tests

* Fix package json to run tests

* Enable v3 TEST api for both development env and CI

* Run CI on both Node 10 and 12

* Allow downgrading Mongo

* Move the units configuration detection to a place where it's guaranteed to catch all invocations

* Fix the check for environments without the units setting

* Rename xdrip-js to xdripjs (nightscout#4959)

* rename xdrip-js to xdripjs

* update readme for xdrip-js name change

* update from CGM to XDRIPJS label

* change label from all caps to mixed case for xDripJS

* change pill label back to CGM

* Added customization step for Alexa skill updates

* Language Update: added missing German Translations (nightscout#5172)

* language Update devicestatus collection

* language Update Admin-Tools

* changed wording for admin authorization

* typo corrected (admin auth)

* language Updates for Admin Tools database cleanups

* Don't use dynamic scale unless entries in database (nightscout#5195)

* don't use dynamic scale unless have entries

* fix report crash when no entries

* set forecastTime correctly when no entries present

* Language Matters: change "Normal" to "In Range" in glucose distribution reports

* Added/updated TOC's

* set auth dialog width to client width if smaller than default width

* More hebrew translations

* Added note regarding the use of the Alexa online simulator

* fix focus scale hour format

* trip open-top size to fit

* fix clearing alarming when clearning CurrentSGV

* do not set direction if not current

* Handled 0 for pump reservoir

* rollback npm-shrinkwrap.json

* Fix for distributionpage

bug that caused hour 23 to always be active even after uncheck

* Russian translation update edit

* Use default entries count instead of distributed number literals

* Handle mmol to mgdl conversions with a constant reference (nightscout#5274)

* Added sanity check for the bridge interval value (nightscout#4717)

* Added sanity check for the bridge interval value, setting minimum allowed value to 30 seconds and maximum to 5 minutes. This is to avoid input of very low values which might overload the dexcom servers.

* Added missin ';'

* Fixed typoe in comment

* Added test for default interval (not set in config)

* Set lower limit to 1 second

* Use auth tokens in api-secret (nightscout#5214)

* Allow auth tokens to be passed in the api-secret header and used in the client in place of the API secret

* Fix unit test

* Fix admin test

* Reload page when token is used as a secret

* Fix dependency vulnerabilities

* Added basal and bolus averages besides TDD and carbs (nightscout#4216)

* Remove the leading 0 from the version, so we can comply to how version numbering should really work

* Removed unsused var ic (nightscout#5288)

* Use constants instead of number literals for http status codes (nightscout#5276)

* Updated release name and number (nightscout#5280)

* Allow use cgm-remote-monitor as npm package. (nightscout#4847)

To use cgm-remote-monitor as npm package, the main attribute is required.

* Add 4 hour option to view (nightscout#5289)

* Revert "change default back to 3HR"

This reverts commit e60ff3a.

* shorten HR to H to avoid line-wrapping on mobile

* try larger label font: 35 instead of 25 (vs. 40)

* add comma

* deviceInfo.recent null check

* default back to 3, w/ 4 as an option

* re-add H to single-digit hours

* * Don't use cache manifest all all for development
* Add 4 hours option to view and change the labelling to remove language issues
* Have page scale the minor pill widths more gracefully

* [Clock] Fix incorrect delta calculation (nightscout#5286)

* Fix !delta check for delta == 0

* Fixed delta comparison

* Hide unit suffix for SMBs issued by AndroidAPS (nightscout#4771)

* Fix issues from `npm audit`

* Read BG targets in using mmol when server is in mmol mode (nightscout#5291)

* Read BG targets in using mmol when server is in mmol mode

* Change the Heroku template to match the new logic

* Deal with mmol targets being set using commas

* Unbreak JSON serialization failing on the /properties API due to circular data reference

* Bump version to 13.0.0

* Release ref update v2 (nightscout#5301)

* Updated release name and number

* Added missing version number

* Added missing version number

* Fix auth dialog sizing error (nightscout#5315)

* Fix auth dialog sizing error (nightscout#5314)

* Fix auth dialog sizing error

* Fix Client Init After Auth

(cherry picked from commit 1bf416c)

* update NS minor version

* Release 13.0.1 (nightscout#5329)

* Release ref update v2 (nightscout#5301)

* Updated release name and number

* Added missing version number

* Added missing version number

* Fix auth dialog sizing error (nightscout#5315)

* Fix auth dialog sizing error (nightscout#5314)

* Fix auth dialog sizing error

* Fix Client Init After Auth

(cherry picked from commit 1bf416c)

* update NS minor version

* Bump version to 13.0.2-dev

* fix some random test failures (nightscout#5341)

* fix some random test failures

* use typeof to test for existence

* Added support for asking delta

* Added time reference

* Made delta reading more informative

* Corrected time reference

* Try shortening the response

* Revert attempt

* Updated templates and documentation

* Minor improvement in response when delta is 0

* German translations improved and added (nightscout#5360)

* Fix Alexa Launch and SessionEnded Requests (nightscout#5377)

* Fix Alexa Launch Request

* Allow LaunchRequest to handle intent if set, change shouldEndSession from string to bool

* Fix SessionEndedRequest

* Fix nightscout#5149 - discord link on CONTRIBUTING.md doesn't do anything (nightscout#5380)

* Fix nightscout#5146 - display of treatment with only Fat and Protein set (nightscout#5381)

* Basic report page style fixes and updates (nightscout#5387)

* Add missing Polish translations and improve existing (nightscout#5382)

* Add missing Polish translations and improve existing

* Improve translations

* Addressed virtual assistant usage with Authentication Roles (nightscout#5388)

* Fix nightscout#5347 - Addressed auth roles

* Unification

* Fix timeago alarms (again). The changes to the rendered had an unintended consequence of triggering the timeago detection less frequently, causing the code to think the client has been hibernating, thus suppressing the alarms. The update changes the clock to be updated more frequently (this updating the hibernation detection), fixing the issue

* Remove the server side test

* Fix Graph Display Without Recent Devicestatus (nightscout#5409)

* Update Russian (nightscout#5415)

Corrected major and minor misprints and mistakes - particularly in variables, new translations added

* Add server teardown ability (nightscout#5410)

* adding teardown event to ctx.bus

* adding teardown support for mmconnect and bridge plugins

* Additional German Translations and corrections (nightscout#5405)

* Cleaned up changed translations

* Added Virtual Assistant Translations

* Fix nightscout#5188 - move predictions to bundle and don't render chart on predictions offset change (nightscout#5395)

* Fix nightscout#5188 - move predictions to bundle and don't render chart on predictions offset change

* Fix predictions show for day to day

* Move toolbar and authentication status to partial and include on each page (nightscout#5393)

* Move authentication status to partial and include on each page

* Move toolbar to partial

Co-authored-by: Sulka Haro <[email protected]>

* Virtual assistant code simplification (nightscout#5400)

* Moved duplicate plugin code to single location, and small improvements

* Defined _each()

* Pr/5379 (nightscout#5441)

* Release 13.0.1 (nightscout#5329)

* Release ref update v2 (nightscout#5301)

* Updated release name and number

* Added missing version number

* Added missing version number

* Fix auth dialog sizing error (nightscout#5315)

* Fix auth dialog sizing error (nightscout#5314)

* Fix auth dialog sizing error

* Fix Client Init After Auth

(cherry picked from commit 1bf416c)

* update NS minor version

* Added handlers and translations for CGM info

* Defined translate()

* Fixed sensor state reference

* Improved wording for tx age response

* Improved wording for session duration response

* Updated documentation and templates

* Updated README.md TOC and a reference to it

* Added CGM battery info

* Added unit reference to CGM battery levels

* Added handlers and translations for CGM info

* Defined translate()

* Fixed sensor state reference

* Improved wording for tx age response

* Improved wording for session duration response

* Updated documentation and templates

* Updated README.md TOC and a reference to it

* Added CGM battery info

* Added unit reference to CGM battery levels

* Updated API reference in Google Home template

Co-authored-by: Caleb <[email protected]>

* Volunteer for Polish translations (nightscout#5396)

* Api3 output renderers (nightscout#5425)

* APIv3: adding framework for various output renderers

* APIv3: adding xml output renderer

* APIv3: adding csv output renderer

* APIv3: documenting supported output renderers

* APIv3: testing output renderers

* Restore glucose distribution test (nightscout#5434)

* Increase coverage of tests on units utility and clean up timeago test (nightscout#5435)

* Increase coverage of tests on units utility

* clean up timeago test

* Refactor to encapsulate duplicated settings logic (nightscout#5426)

* Encapsulate duplicate settings checks inside functions

* Simplify settings::isAlarmEventEnabled()

* Send coverage reports to Codacy (nightscout#5444)

* Send coverage reports to Codacy

* Action secrets may not be read from forks :(

* Let's see if this fixes the path & key passing

* Ok one more try for the Actions env

* Run tests and coverage separately

* Try increasing the admintools test runtime for Node 10

* Run tests only once

* Resolve unnecessary uses of eslint-ignore (nightscout#5436)

* Resolve unnecessary disabling of no-undef eslint rule

* Resolve unnecessary disabling of no-prototype-builtins eslint rule

* Resolve unnecessary disabling of no-unused-vars eslint rule

* Resolve unnecessary disabling of no-empty eslint rule

* Fix eslint errors and add npm script for eslint (nightscout#5427)

* re-enable auth check for device status routes

* Resolve eslint errors

* Add npm script for eslint

* Correct regex for express extension middleware and add tests for expected behaviour

* Resolve lint error in virtual assistant base

* Update index.js

* Update index.js

* Remove redundant checks on entry ID (nightscout#5440)

* Run CI Action for Pull Requests

* Update DayToDay report for Loop Overrides (nightscout#5452)

Add Loop override name/reason as text to the grey bar at the top of the graph.

* Fix earlier merge error with predictions having moved to the report bundle

* fix brushing loop (nightscout#5499)

* Update README.md (nightscout#5480)

Clarified that the "bridge" plugin is for Dexcom Share ("Dexcom" didn't appear at all in the read me), fixed a few typos, and added line 444 about the BRIDGE_SERVER variable.

* Added period of days into headline of glucose distribution and percen… (nightscout#5428)

* Added period of days into headline of glucose distribution and percentil chart report

I make screencopies of the glucose distribution and percential chart report for my diabtes consultant and had to manually add the period of days to the report everytime because it was not shown in the report itself.
I added the period of days this with a small number of lines of code and think this is helpful for other too.

* removed comments as requested

removed comments as requested

* Camelcase for new variables reportPlugins, firstDay, lastDay, countDays

* forget to save the change of reportPlugins in percentile.js

* Move app caching to a service worker (nightscout#5504)

* Move app caching to a webworker

* Code cleanup

* Code cleanup

* Make Codacy happy

* More parentheses

* Added indexes to 'entries' and 'treatments' along with other updates (nightscout#5463)

* Added compound indexes for treatments and entries collections. Updated ensureIndex to createIndex in mongo-strage.js as ensureIndex has been deprecated. Finally, updated testing/populate.js to be compatible with more recent versions of the node driver, as well as fixing a path issue.

* Fixed missing end quote in lib/server/treatments.js. Changed all newly added double quotes to single quote to match style guide.

* Removed indexes that referenced key600.

* Fix: Round interporlated mg/dL value to an integer

* Plugin to show database size (% of available space or in MiB) (nightscout#5496)

* Database size plugin - pill that displays current mongoDB database size

* Enabled dbsize by default

* Fixed bug with dbsize not shownig when size is (rounded) 0% but real bytes > 0

* Cleanup & update to iconfont generation manual

* Changed how warning/urgent levels are configured - from absolute MiB to percentage of DBSIZE_MAX

* Trying to fix random fail of APIv3 tests (nightscout#5519)

* APIv3: isolating documents from tests (not allowing clashes of calculated identifiers)

* removing unused async keyword

* client - mobile - Axis label font is scaled on small screens (nightscout#5512)

On phones or other small screens, the axis labels (especially x axis)
were previously an unreadable jumble of too-close letters

* Split view (nightscout#5518)

* Adds a 2, 3, 4 and 8 way split view option

* Updated description

* Generate the table on demand, so any number of sites from 1 to 8 generates a sensible layout

* Update readme & don't crash if a name is missing

* Allow flagging specific settings to be not exposed the /properties and /status APIs (nightscout#5525)

* Add more variables to the special list

* [DEV][FIX] Fix dbsize plugin to make it hideable again (nightscout#5529)

* [FIX] Making dbsize plugin default but hideable - removed its forced show state

* Removed unused lodash dependency

* Removed duplicate if statement (nightscout#5531)

Removed the additional if statement checking for the loop specific developer team id. This since the exact same if statement existed just above it.

* Update Dutch translations (nightscout#5532)

* Fix settings test

* Update version to 13.1.0

* Fix topbar collapse on small screens (nightscout#5562)

* Fix top bar collapsing on small screens

* Fix wide button array overflowing the button bar

* Option to switch off bolus amount outputs (nightscout#5522)

* Option to switch off bolus amount outputs (nightscout#5514)

* Fixing issue with carb value not be output when set to "none" (nightscout#5514)

* Adding additional output options (nightscout#5514)

* Adding environment variable option for 'x U and Over' option.

This option is BOLUS_RENDER_OVER with a default value of 1 and the value can be an integer or a float, e.g. 0.3, 1.5, 2, etc...

* Adding change to change the font size depending on the bolus value.

* Merge two "all" options to create an option that displays as SMB had.

* Fix d3 portrait to landscape brush failure (nightscout#5638)

* fix d3 portrait to landscape brush failure

* fix client.renderer.test for highlighBrushPoints function prototype change

* fix highlightBrush

* move brush reset inside check for valid brush

* Sanitize data from manual careportal entries so only fields with actual data are sent to the server (nightscout#5619)

* do not redirect to profile editor by default (nightscout#5671)

In a default configuration, there is no treatment data.  The code to redirect
the UI to the profile editor is buried deep within the chart rendering code for
basals.  This plugin is only supposed to go into action when enabled via
ENABLE=basal.  This commit fixes first-use experience for the default
configuration intended to draw real-time CGM traces and no basal information is
expected.  Since no basal information is expected unless plugin is enabled via
ENABLE=basal, this allows skipping instead of redirecting to the profile editor.

* Fix Issue nightscout#5486 - Device Status Days Feature (nightscout#5651)

* Device Status Days Feature

* Edits per review from @sulkaharo

* Configurable clock views (nightscout#5625)

* Configurable clock views

* Configurable clock views

* Configurable clock views

* Configurable clock views

* Configurable clock views

* Configurable clock views

* Update README.md

* Update README.md

* Configurable clock views

* Add remote bolus/carbs + otp entry for loop (nightscout#5598)

Add a remote bolus entry field for users on Loop, along with support for an OTP field

* Sometimes at the very start no profiles provided. (nightscout#5591)

At the first start the nightscout is crashed if profile not full.

* Fixes nightscout#4991 - Now selects basal profile based day by day (nightscout#5572)

* Test profile settings

* NPM Version change

* Use console log

* Use console log for client

* Use console log for client.sbx

* Use console log for client.ddata

* Use console log for client again

* revert

* Added multi-profile reporting capabilities

Co-authored-by: VIS TFS Admin <[email protected]>

* prepare hotfix for MMConnect/EU - 2020-06-28

Prepare to handle issue nightscout#5719.  This patch adjusts dependencies to
target a community edition fork of minimed-connect-to-nightscout.  The
new dependency targets information provided to begin addressing
changes to Medtronic Carelink services starting late June 2020.

* bump pointing at right tag

* prepare hotfix for MMConnect/EU - 2020-06-28

Prepare to handle issue nightscout#5719.  This patch adjusts dependencies to
target a community edition fork of minimed-connect-to-nightscout.  The
new dependency targets information provided to begin addressing
changes to Medtronic Carelink services starting late June 2020.

* bump pointing at right tag

* hotfix attempt 2 - carelink 2020 sso updates

* hotfix 3 - attempt 3 at carelink 2020 sso updates

* attempt 4 at hotfix for nightscout

Based on more reliable version of minimed-connect-to-nightscout....
This is testing the hotfix.  When it works, we will bump this one more
time with the newly released version.

* hotfix 5 - incorporates latest axios changes

* Fix for boluscalc issue (nightscout#5729)

Boluscalc fix & remove integer validation from BG input field

* npm install --save minimed-connect-to-nightscout@^1.4.0

* Change DISPLAY_UNITS to use readENV's default value and added several tests for DISPLAY_UNITS (nightscout#5708)

readENV() was hard coding the default value of DISPLAY_UNITS, and
ignoring the default value for no particular reason. Fixed that. Also, I
added a full test suite for DISPLAY_UNITS environment settings to make
sure that it works as intended. Finally, I've added the console log for
the DISPLAY_UNITS since there's no particular reason why we log that setting
and not others.

* Fix audit errors, button order (nightscout#5694)

* * Update packages giving npm audit errors
* Fix Mongo test that broke after update (now uses async/await on getting the connection)
* Restore original navigation bar button order

* Disable Node 10 tests

* Fix temporary target cancellation

* Added documentation on the use of Alpha Testing (nightscout#5784)

* Wip/bewest/mmconnect eu (nightscout#5731)

* prepare hotfix for MMConnect/EU - 2020-06-28

Prepare to handle issue nightscout#5719.  This patch adjusts dependencies to
target a community edition fork of minimed-connect-to-nightscout.  The
new dependency targets information provided to begin addressing
changes to Medtronic Carelink services starting late June 2020.

* bump pointing at right tag

* hotfix attempt 2 - carelink 2020 sso updates

* hotfix 3 - attempt 3 at carelink 2020 sso updates

* attempt 4 at hotfix for nightscout

Based on more reliable version of minimed-connect-to-nightscout....
This is testing the hotfix.  When it works, we will bump this one more
time with the newly released version.

Co-authored-by: Sulka Haro <[email protected]>

* * Updated several packages to remove issues from NPM audit
* Fix excess logging in settings.js
* Removed heapdump package, which was causing issues for some users

* * Limit the default number of profiles returned by the API to fix issues with users who are syncing a large amount of profiles from an APS.
* Fix profile reporting

* Upgrade Helmet to 4.0.0

* CSP and service worker improvements (nightscout#5856)

* Add connectSrc for Safari compatibiity
* Add new font URL for Google Fonts compatibility
* Reload on re-registering the worker
* Change Mongo version in github to fix builds

* Serve the CSP to everyone

* Split view CSP support (nightscout#5864)

* Parse split view frames into frameAncestors

* Re-enable CSP configuration (nightscout#5867)

* Re-enable CSP configuration

* Bump share2nightscout-bridge plugin

Use latest update from share2nightscout bridge to
make things easier.  It contains an updated
default for OUS users.

* feat Add robots.txt to disallow site crawling

* Fix dbsize for usage with Atlas (nightscout#5962)

* Openaps performance improvement (nightscout#5945)

* improve openaps plugin performance

* more performance improvements

(cherry picked from commit 076a2dd)

* correct setting notEnacted variable

* remove unnecessary debug logging

* Adapt to MongoDB Atlas (nightscout#5893)

* Fix Issue nightscout#5763 - Change $.ajax to /api/v1/profile (nightscout#5704)

* Bug fixes for Service Worker (nightscout#5970)

* Fix service worker refresh for Firefox

* Improve logging for service worker initialisation

* Skip browser cache for service worker precaching

* Prevent `Partial Content` responses in `fetch` by stripping `Range` header

* Prevent calling `filter` on an undefined property when service worker cache is empty

* Bug fixes for Service Worker

*    Fixes nightscout#5920
*    Fixes nightscout#5943

* Update service-worker.js

Removed the MP3 files from the preload to fix issues with webkit-based browsers

Co-authored-by: p5nbTgip0r <[email protected]>
Co-authored-by: Sulka Haro <[email protected]>

* Optimize Nightscout database usage (nightscout#5947)

* On periodic polls, only load delta for CGM data, treatments and device statuses
* Serve basic CGM data API queries from in-memory cache. Increases the Nightscout memory footprint but should significantly reduce the Mongo load
* Serve device status, CGM and treatment records from memory cache
* Support count parameter in /profile

* Bumping version to 14.0.0 given this is a relatively large update and we want people on Atlas to all migrate to this version

* Remove logging statements

* fix brushing recursion

* Normalize treatments to support absolute doses from the amount field

* Add Loop Carbs foodType, absorptionTime to Reports for ISSUE nightscout#5701 (nightscout#5702)

* add carb foodType, absorptionTime to reports

* Update README to point to new docs

* Fix `Treatments` report for `mmol/L` users

Fixed a typo to a client function name

* Bump version to 14.0.1

* Bump dev to 14.0.2

* Serve Last-Modified header for the service worker to help with some browsers misdetecting caching

* Cleaned old appcache references

* * Remove unnecessary logging to help with Papertrail limits
* Load more treatments and entries to fix caching issues (need to add better cache invalidation to really fix this)

* When merging inserts and updates from the database, ensure we always use the new data over the old data

* Bump treatment delta loading to four hours

* One more increase to treatment load time to cover long overrides

* * Bump version to 14.0.3
* Fix a bug in the REST API query for profiles

* Bumped up the number of treatments loaded / day for reporting

* Fix reports unit test

* Bump treatments default limit default to 1000 objects for queries that include other query parameters

* * Require created_at for Treatments on insert
* Refactoring the cache: moved to another file and support flushing from bus events

* Add support for CGM data and device statuses. Refactor dataloader to use the new model and reduce queries back down

* Fix data order for REST API

* * Add cache update events to websocket API
* Remove the validation for created_at in REST API ;(

* Remove excess logging

* Bump version to .4

* Bump version to 14.0.5 and fix nightscout#6050

* Fix Pebble API detecting mmol units from settings

* Make settings parsing whitespace tolerant

* * Fix security test
* Change boot and caching to expose Mongo connection errors

* Don't report an error on every reconnect

* Less intimidating error page on start, which also checks for api_secret

* Add file missing from last commit

* Fix tests

* Remove require statement breaking deploys

* Update --feature-request--.md

* Update --bug-report.md

* Update --individual-troubleshooting-help.md

* Fix memory leak and cache update issues in 14.0.4 (nightscout#6133)

* Fix a memory leak in 14.0.4
* Fix linter error in ddata.js
* Move data retention periods to caching
* Update _id of inserted entries and device status so merging to cache works correctly
* Reset the data in ddata before updating
* Fix typo on entry cache retention period
* Have device status cache retention period follow configuration
* Fix _id injection in treatments

* Add error cat to error page

* Fix MONGODB_URI reference in error message

* Bump version to 14.0.6

* Support uploading device statuses in batches (nightscout#6147)

* Support uploading device statuses in batches
* Correctly report batch insertion results

* Make empty cache detection a bit more aggressive to account for cache flush and data insert happening concurrently

* Update README.md

Explicitly link to the application template in Github

* Create config.yml

* Delete --individual-troubleshooting-help.md

* Update config.yml

Co-authored-by: Sulka Haro <[email protected]>
Co-authored-by: inventor96 <[email protected]>
Co-authored-by: Jeremy Cunningham <[email protected]>
Co-authored-by: PetrOndrusek <[email protected]>
Co-authored-by: Caleb <[email protected]>
Co-authored-by: Diabetlum <[email protected]>
Co-authored-by: Willem Fibbe <[email protected]>
Co-authored-by: John Weston <[email protected]>
Co-authored-by: ireneusz-ptak <[email protected]>
Co-authored-by: Lukas Herzog <[email protected]>
Co-authored-by: Jeremy Cunningham <[email protected]>
Co-authored-by: Jake Bloom <[email protected]>
Co-authored-by: David Jansson <[email protected]>
Co-authored-by: fedor apanasenko <[email protected]>
Co-authored-by: Jakob Sandberg <[email protected]>
Co-authored-by: Jakob <[email protected]>
Co-authored-by: Asbjørn Aarrestad <[email protected]>
Co-authored-by: lixgbg <[email protected]>
Co-authored-by: Harmjan Greving <[email protected]>
Co-authored-by: Bluefox <[email protected]>
Co-authored-by: Cas Eliëns <[email protected]>
Co-authored-by: Tanja <[email protected]>
Co-authored-by: Bartłomiej Szubert <[email protected]>
Co-authored-by: Andrew Dixon <[email protected]>
Co-authored-by: Petr Ondrusek <[email protected]>
Co-authored-by: Lukas Herzog <[email protected]>
Co-authored-by: jonfawcett <[email protected]>
Co-authored-by: Jonas Hummelstrand <[email protected]>
Co-authored-by: peterleimbach <[email protected]>
Co-authored-by: Adam Harrison <[email protected]>
Co-authored-by: Dominik Dzienia <[email protected]>
Co-authored-by: stephencmorton <[email protected]>
Co-authored-by: Simon Persson <[email protected]>
Co-authored-by: Cas Eliëns <[email protected]>
Co-authored-by: Ben West <[email protected]>
Co-authored-by: Matthew <[email protected]>
Co-authored-by: josep1972 <[email protected]>
Co-authored-by: fromorbonia <[email protected]>
Co-authored-by: VIS TFS Admin <[email protected]>
Co-authored-by: joracine <[email protected]>
Co-authored-by: Alexandre Viau <[email protected]>
Co-authored-by: Lennart Goedhart <[email protected]>
Co-authored-by: p5nbTgip0r <[email protected]>
Co-authored-by: kskandispersonal <[email protected]>
aslzo added a commit to aslzo/cgm-remote-monitor that referenced this pull request Dec 13, 2020
* mgdl -> mg/dl

* Release ref update v2 (nightscout#5301)

* Updated release name and number

* Added missing version number

* Added missing version number

* Fix auth dialog sizing error (nightscout#5315)

* Fix auth dialog sizing error (nightscout#5314)

* Fix auth dialog sizing error

* Fix Client Init After Auth

(cherry picked from commit 1bf416c)

* update NS minor version

* Bump version to 13.0.2-dev

* fix some random test failures (nightscout#5341)

* fix some random test failures

* use typeof to test for existence

* Added support for asking delta

* Added time reference

* Made delta reading more informative

* Corrected time reference

* Try shortening the response

* Revert attempt

* Updated templates and documentation

* Minor improvement in response when delta is 0

* German translations improved and added (nightscout#5360)

* Fix Alexa Launch and SessionEnded Requests (nightscout#5377)

* Fix Alexa Launch Request

* Allow LaunchRequest to handle intent if set, change shouldEndSession from string to bool

* Fix SessionEndedRequest

* Fix nightscout#5149 - discord link on CONTRIBUTING.md doesn't do anything (nightscout#5380)

* Fix nightscout#5146 - display of treatment with only Fat and Protein set (nightscout#5381)

* Basic report page style fixes and updates (nightscout#5387)

* Add missing Polish translations and improve existing (nightscout#5382)

* Add missing Polish translations and improve existing

* Improve translations

* Addressed virtual assistant usage with Authentication Roles (nightscout#5388)

* Fix nightscout#5347 - Addressed auth roles

* Unification

* Fix timeago alarms (again). The changes to the rendered had an unintended consequence of triggering the timeago detection less frequently, causing the code to think the client has been hibernating, thus suppressing the alarms. The update changes the clock to be updated more frequently (this updating the hibernation detection), fixing the issue

* Remove the server side test

* Fix Graph Display Without Recent Devicestatus (nightscout#5409)

* Update Russian (nightscout#5415)

Corrected major and minor misprints and mistakes - particularly in variables, new translations added

* Add server teardown ability (nightscout#5410)

* adding teardown event to ctx.bus

* adding teardown support for mmconnect and bridge plugins

* Additional German Translations and corrections (nightscout#5405)

* Cleaned up changed translations

* Added Virtual Assistant Translations

* Fix nightscout#5188 - move predictions to bundle and don't render chart on predictions offset change (nightscout#5395)

* Fix nightscout#5188 - move predictions to bundle and don't render chart on predictions offset change

* Fix predictions show for day to day

* Move toolbar and authentication status to partial and include on each page (nightscout#5393)

* Move authentication status to partial and include on each page

* Move toolbar to partial

Co-authored-by: Sulka Haro <[email protected]>

* Virtual assistant code simplification (nightscout#5400)

* Moved duplicate plugin code to single location, and small improvements

* Defined _each()

* Pr/5379 (nightscout#5441)

* Release 13.0.1 (nightscout#5329)

* Release ref update v2 (nightscout#5301)

* Updated release name and number

* Added missing version number

* Added missing version number

* Fix auth dialog sizing error (nightscout#5315)

* Fix auth dialog sizing error (nightscout#5314)

* Fix auth dialog sizing error

* Fix Client Init After Auth

(cherry picked from commit 1bf416c)

* update NS minor version

* Added handlers and translations for CGM info

* Defined translate()

* Fixed sensor state reference

* Improved wording for tx age response

* Improved wording for session duration response

* Updated documentation and templates

* Updated README.md TOC and a reference to it

* Added CGM battery info

* Added unit reference to CGM battery levels

* Added handlers and translations for CGM info

* Defined translate()

* Fixed sensor state reference

* Improved wording for tx age response

* Improved wording for session duration response

* Updated documentation and templates

* Updated README.md TOC and a reference to it

* Added CGM battery info

* Added unit reference to CGM battery levels

* Updated API reference in Google Home template

Co-authored-by: Caleb <[email protected]>

* Volunteer for Polish translations (nightscout#5396)

* Api3 output renderers (nightscout#5425)

* APIv3: adding framework for various output renderers

* APIv3: adding xml output renderer

* APIv3: adding csv output renderer

* APIv3: documenting supported output renderers

* APIv3: testing output renderers

* Restore glucose distribution test (nightscout#5434)

* Increase coverage of tests on units utility and clean up timeago test (nightscout#5435)

* Increase coverage of tests on units utility

* clean up timeago test

* Refactor to encapsulate duplicated settings logic (nightscout#5426)

* Encapsulate duplicate settings checks inside functions

* Simplify settings::isAlarmEventEnabled()

* Send coverage reports to Codacy (nightscout#5444)

* Send coverage reports to Codacy

* Action secrets may not be read from forks :(

* Let's see if this fixes the path & key passing

* Ok one more try for the Actions env

* Run tests and coverage separately

* Try increasing the admintools test runtime for Node 10

* Run tests only once

* Resolve unnecessary uses of eslint-ignore (nightscout#5436)

* Resolve unnecessary disabling of no-undef eslint rule

* Resolve unnecessary disabling of no-prototype-builtins eslint rule

* Resolve unnecessary disabling of no-unused-vars eslint rule

* Resolve unnecessary disabling of no-empty eslint rule

* Fix eslint errors and add npm script for eslint (nightscout#5427)

* re-enable auth check for device status routes

* Resolve eslint errors

* Add npm script for eslint

* Correct regex for express extension middleware and add tests for expected behaviour

* Resolve lint error in virtual assistant base

* Update index.js

* Update index.js

* Remove redundant checks on entry ID (nightscout#5440)

* Run CI Action for Pull Requests

* Update DayToDay report for Loop Overrides (nightscout#5452)

Add Loop override name/reason as text to the grey bar at the top of the graph.

* Fix earlier merge error with predictions having moved to the report bundle

* fix brushing loop (nightscout#5499)

* Update README.md (nightscout#5480)

Clarified that the "bridge" plugin is for Dexcom Share ("Dexcom" didn't appear at all in the read me), fixed a few typos, and added line 444 about the BRIDGE_SERVER variable.

* Added period of days into headline of glucose distribution and percen… (nightscout#5428)

* Added period of days into headline of glucose distribution and percentil chart report

I make screencopies of the glucose distribution and percential chart report for my diabtes consultant and had to manually add the period of days to the report everytime because it was not shown in the report itself.
I added the period of days this with a small number of lines of code and think this is helpful for other too.

* removed comments as requested

removed comments as requested

* Camelcase for new variables reportPlugins, firstDay, lastDay, countDays

* forget to save the change of reportPlugins in percentile.js

* Move app caching to a service worker (nightscout#5504)

* Move app caching to a webworker

* Code cleanup

* Code cleanup

* Make Codacy happy

* More parentheses

* Added indexes to 'entries' and 'treatments' along with other updates (nightscout#5463)

* Added compound indexes for treatments and entries collections. Updated ensureIndex to createIndex in mongo-strage.js as ensureIndex has been deprecated. Finally, updated testing/populate.js to be compatible with more recent versions of the node driver, as well as fixing a path issue.

* Fixed missing end quote in lib/server/treatments.js. Changed all newly added double quotes to single quote to match style guide.

* Removed indexes that referenced key600.

* Fix: Round interporlated mg/dL value to an integer

* Plugin to show database size (% of available space or in MiB) (nightscout#5496)

* Database size plugin - pill that displays current mongoDB database size

* Enabled dbsize by default

* Fixed bug with dbsize not shownig when size is (rounded) 0% but real bytes > 0

* Cleanup & update to iconfont generation manual

* Changed how warning/urgent levels are configured - from absolute MiB to percentage of DBSIZE_MAX

* Trying to fix random fail of APIv3 tests (nightscout#5519)

* APIv3: isolating documents from tests (not allowing clashes of calculated identifiers)

* removing unused async keyword

* client - mobile - Axis label font is scaled on small screens (nightscout#5512)

On phones or other small screens, the axis labels (especially x axis)
were previously an unreadable jumble of too-close letters

* Split view (nightscout#5518)

* Adds a 2, 3, 4 and 8 way split view option

* Updated description

* Generate the table on demand, so any number of sites from 1 to 8 generates a sensible layout

* Update readme & don't crash if a name is missing

* Allow flagging specific settings to be not exposed the /properties and /status APIs (nightscout#5525)

* Add more variables to the special list

* [DEV][FIX] Fix dbsize plugin to make it hideable again (nightscout#5529)

* [FIX] Making dbsize plugin default but hideable - removed its forced show state

* Removed unused lodash dependency

* Removed duplicate if statement (nightscout#5531)

Removed the additional if statement checking for the loop specific developer team id. This since the exact same if statement existed just above it.

* Update Dutch translations (nightscout#5532)

* Fix settings test

* Update version to 13.1.0

* Fix topbar collapse on small screens (nightscout#5562)

* Fix top bar collapsing on small screens

* Fix wide button array overflowing the button bar

* Option to switch off bolus amount outputs (nightscout#5522)

* Option to switch off bolus amount outputs (nightscout#5514)

* Fixing issue with carb value not be output when set to "none" (nightscout#5514)

* Adding additional output options (nightscout#5514)

* Adding environment variable option for 'x U and Over' option.

This option is BOLUS_RENDER_OVER with a default value of 1 and the value can be an integer or a float, e.g. 0.3, 1.5, 2, etc...

* Adding change to change the font size depending on the bolus value.

* Merge two "all" options to create an option that displays as SMB had.

* Fix d3 portrait to landscape brush failure (nightscout#5638)

* fix d3 portrait to landscape brush failure

* fix client.renderer.test for highlighBrushPoints function prototype change

* fix highlightBrush

* move brush reset inside check for valid brush

* Sanitize data from manual careportal entries so only fields with actual data are sent to the server (nightscout#5619)

* do not redirect to profile editor by default (nightscout#5671)

In a default configuration, there is no treatment data.  The code to redirect
the UI to the profile editor is buried deep within the chart rendering code for
basals.  This plugin is only supposed to go into action when enabled via
ENABLE=basal.  This commit fixes first-use experience for the default
configuration intended to draw real-time CGM traces and no basal information is
expected.  Since no basal information is expected unless plugin is enabled via
ENABLE=basal, this allows skipping instead of redirecting to the profile editor.

* Fix Issue nightscout#5486 - Device Status Days Feature (nightscout#5651)

* Device Status Days Feature

* Edits per review from @sulkaharo

* Configurable clock views (nightscout#5625)

* Configurable clock views

* Configurable clock views

* Configurable clock views

* Configurable clock views

* Configurable clock views

* Configurable clock views

* Update README.md

* Update README.md

* Configurable clock views

* Add remote bolus/carbs + otp entry for loop (nightscout#5598)

Add a remote bolus entry field for users on Loop, along with support for an OTP field

* Sometimes at the very start no profiles provided. (nightscout#5591)

At the first start the nightscout is crashed if profile not full.

* Fixes nightscout#4991 - Now selects basal profile based day by day (nightscout#5572)

* Test profile settings

* NPM Version change

* Use console log

* Use console log for client

* Use console log for client.sbx

* Use console log for client.ddata

* Use console log for client again

* revert

* Added multi-profile reporting capabilities

Co-authored-by: VIS TFS Admin <[email protected]>

* prepare hotfix for MMConnect/EU - 2020-06-28

Prepare to handle issue nightscout#5719.  This patch adjusts dependencies to
target a community edition fork of minimed-connect-to-nightscout.  The
new dependency targets information provided to begin addressing
changes to Medtronic Carelink services starting late June 2020.

* bump pointing at right tag

* prepare hotfix for MMConnect/EU - 2020-06-28

Prepare to handle issue nightscout#5719.  This patch adjusts dependencies to
target a community edition fork of minimed-connect-to-nightscout.  The
new dependency targets information provided to begin addressing
changes to Medtronic Carelink services starting late June 2020.

* bump pointing at right tag

* hotfix attempt 2 - carelink 2020 sso updates

* hotfix 3 - attempt 3 at carelink 2020 sso updates

* attempt 4 at hotfix for nightscout

Based on more reliable version of minimed-connect-to-nightscout....
This is testing the hotfix.  When it works, we will bump this one more
time with the newly released version.

* hotfix 5 - incorporates latest axios changes

* Fix for boluscalc issue (nightscout#5729)

Boluscalc fix & remove integer validation from BG input field

* npm install --save minimed-connect-to-nightscout@^1.4.0

* Change DISPLAY_UNITS to use readENV's default value and added several tests for DISPLAY_UNITS (nightscout#5708)

readENV() was hard coding the default value of DISPLAY_UNITS, and
ignoring the default value for no particular reason. Fixed that. Also, I
added a full test suite for DISPLAY_UNITS environment settings to make
sure that it works as intended. Finally, I've added the console log for
the DISPLAY_UNITS since there's no particular reason why we log that setting
and not others.

* Fix audit errors, button order (nightscout#5694)

* * Update packages giving npm audit errors
* Fix Mongo test that broke after update (now uses async/await on getting the connection)
* Restore original navigation bar button order

* Disable Node 10 tests

* Fix temporary target cancellation

* Added documentation on the use of Alpha Testing (nightscout#5784)

* Wip/bewest/mmconnect eu (nightscout#5731)

* prepare hotfix for MMConnect/EU - 2020-06-28

Prepare to handle issue nightscout#5719.  This patch adjusts dependencies to
target a community edition fork of minimed-connect-to-nightscout.  The
new dependency targets information provided to begin addressing
changes to Medtronic Carelink services starting late June 2020.

* bump pointing at right tag

* hotfix attempt 2 - carelink 2020 sso updates

* hotfix 3 - attempt 3 at carelink 2020 sso updates

* attempt 4 at hotfix for nightscout

Based on more reliable version of minimed-connect-to-nightscout....
This is testing the hotfix.  When it works, we will bump this one more
time with the newly released version.

Co-authored-by: Sulka Haro <[email protected]>

* * Updated several packages to remove issues from NPM audit
* Fix excess logging in settings.js
* Removed heapdump package, which was causing issues for some users

* * Limit the default number of profiles returned by the API to fix issues with users who are syncing a large amount of profiles from an APS.
* Fix profile reporting

* Upgrade Helmet to 4.0.0

* CSP and service worker improvements (nightscout#5856)

* Add connectSrc for Safari compatibiity
* Add new font URL for Google Fonts compatibility
* Reload on re-registering the worker
* Change Mongo version in github to fix builds

* Serve the CSP to everyone

* Split view CSP support (nightscout#5864)

* Parse split view frames into frameAncestors

* Re-enable CSP configuration (nightscout#5867)

* Re-enable CSP configuration

* Bump share2nightscout-bridge plugin

Use latest update from share2nightscout bridge to
make things easier.  It contains an updated
default for OUS users.

* feat Add robots.txt to disallow site crawling

* Fix dbsize for usage with Atlas (nightscout#5962)

* Openaps performance improvement (nightscout#5945)

* improve openaps plugin performance

* more performance improvements

(cherry picked from commit 076a2dd)

* correct setting notEnacted variable

* remove unnecessary debug logging

* Adapt to MongoDB Atlas (nightscout#5893)

* Fix Issue nightscout#5763 - Change $.ajax to /api/v1/profile (nightscout#5704)

* Bug fixes for Service Worker (nightscout#5970)

* Fix service worker refresh for Firefox

* Improve logging for service worker initialisation

* Skip browser cache for service worker precaching

* Prevent `Partial Content` responses in `fetch` by stripping `Range` header

* Prevent calling `filter` on an undefined property when service worker cache is empty

* Bug fixes for Service Worker

*    Fixes nightscout#5920
*    Fixes nightscout#5943

* Update service-worker.js

Removed the MP3 files from the preload to fix issues with webkit-based browsers

Co-authored-by: p5nbTgip0r <[email protected]>
Co-authored-by: Sulka Haro <[email protected]>

* Optimize Nightscout database usage (nightscout#5947)

* On periodic polls, only load delta for CGM data, treatments and device statuses
* Serve basic CGM data API queries from in-memory cache. Increases the Nightscout memory footprint but should significantly reduce the Mongo load
* Serve device status, CGM and treatment records from memory cache
* Support count parameter in /profile

* Bumping version to 14.0.0 given this is a relatively large update and we want people on Atlas to all migrate to this version

* Remove logging statements

* fix brushing recursion

* Normalize treatments to support absolute doses from the amount field

* Add Loop Carbs foodType, absorptionTime to Reports for ISSUE nightscout#5701 (nightscout#5702)

* add carb foodType, absorptionTime to reports

* Update README to point to new docs

* Fix `Treatments` report for `mmol/L` users

Fixed a typo to a client function name

* Bump version to 14.0.1

* Bump dev to 14.0.2

* Serve Last-Modified header for the service worker to help with some browsers misdetecting caching

* Cleaned old appcache references

* * Remove unnecessary logging to help with Papertrail limits
* Load more treatments and entries to fix caching issues (need to add better cache invalidation to really fix this)

* When merging inserts and updates from the database, ensure we always use the new data over the old data

* Bump treatment delta loading to four hours

* One more increase to treatment load time to cover long overrides

* * Bump version to 14.0.3
* Fix a bug in the REST API query for profiles

* Bumped up the number of treatments loaded / day for reporting

* Fix reports unit test

* Bump treatments default limit default to 1000 objects for queries that include other query parameters

* * Require created_at for Treatments on insert
* Refactoring the cache: moved to another file and support flushing from bus events

* Add support for CGM data and device statuses. Refactor dataloader to use the new model and reduce queries back down

* Fix data order for REST API

* * Add cache update events to websocket API
* Remove the validation for created_at in REST API ;(

* Remove excess logging

* Bump version to .4

* Bump version to 14.0.5 and fix nightscout#6050

* Fix Pebble API detecting mmol units from settings

* Make settings parsing whitespace tolerant

* * Fix security test
* Change boot and caching to expose Mongo connection errors

* Don't report an error on every reconnect

* Less intimidating error page on start, which also checks for api_secret

* Add file missing from last commit

* Fix tests

* Remove require statement breaking deploys

* Update --feature-request--.md

* Update --bug-report.md

* Update --individual-troubleshooting-help.md

* Fix memory leak and cache update issues in 14.0.4 (nightscout#6133)

* Fix a memory leak in 14.0.4
* Fix linter error in ddata.js
* Move data retention periods to caching
* Update _id of inserted entries and device status so merging to cache works correctly
* Reset the data in ddata before updating
* Fix typo on entry cache retention period
* Have device status cache retention period follow configuration
* Fix _id injection in treatments

* Add error cat to error page

* Fix MONGODB_URI reference in error message

* Bump version to 14.0.6

* Support uploading device statuses in batches (nightscout#6147)

* Support uploading device statuses in batches
* Correctly report batch insertion results

* Make empty cache detection a bit more aggressive to account for cache flush and data insert happening concurrently

* * Bump version to 14.0.7
* Add onerror handler for pushover

* Update README.md

Explicitly link to the application template in Github

* Fixed nightscout#5852 - Updated Google Home setup steps (nightscout#6195)

* Fix broken swagger for APIv3 (nightscout#6201)

* APIv3: isolating documents from tests (not allowing clashes of calculated identifiers)

* removing unused async keyword

* fixing api v3 swagger and moving it to /api3-docs

Co-authored-by: Petr Ondrusek <[email protected]>
Co-authored-by: Petr Ondrůšek <[email protected]>

* Use lodash.get() in virtual assistant API endpoints (v2) (nightscout#6199)

* Fixed nightscout#5632 - Improved value resolution

* More value resolution improvements

* Fixed a couple object paths

* Corrected setup of `dbsize` for virtual assistants (nightscout#6270)

* Corrected db size config for virtual assistants

* Language fix, improvements, added dbsize to virtAsst config

* Using env

* Added logging

* Debug logging

* Different logging

* More troubleshooting

* Another try

* Reverted stuff, added dbsize to server defaults

* Fixed test

* Fixed another test

* Create config.yml

* Delete --individual-troubleshooting-help.md

* Update config.yml

* Fix batch (nightscout#6248)

* Use the delta plugin data to show the delta in the clock views
* Update Node checks
* Fix disabling the BG alarms for simple alarms
* Load battery and other rare events up to two months back
* Possibly fixes compatibility with ios9 - needs testing
* Unified black and color clock layouts
* Update clock data every 20 seconds
* Update clock time every second
* Fix how CSP policy is set for Helmet, fixes nightscout#6260
* Authorization fix for misformatted URLs
* Added unit test for batch upload of CGM entries
* Improved / removed some logging
* Test if user is in read only mode when Nightscout starts and give an error if so

* Adding Hungarian translation to nightscout (nightscout#6037)


* Finished first round of translation for Hungarian language

* Added hungarian language to the readme file

* Fixes

* WIP

* Typo fixes and changes to translations

* Update language.js

Fixed some mistyped language keys

Co-authored-by: Andy Feher <[email protected]>
Co-authored-by: Sulka Haro <[email protected]>

* Update language.js (nightscout#6193)

Isfjell -> Istapp

Co-authored-by: Sulka Haro <[email protected]>

* nightscout#5991 Typo in translation (nightscout#6217)

Co-authored-by: Sulka Haro <[email protected]>

* add missing translations (nightscout#6346)

Co-authored-by: Sulka Haro <[email protected]>

* Updated Alexa's intents because Amazon required new ones yet again. (nightscout#6457)

* Add runtime state tracking to Nightscout, where client now checks if the server has loaded initial data from Mongo before the user is directed to the UI

* Add file missing from previous commit

* Update app.json

* Fix unit tests

* Fix the read detection to work correctly with MongoDB Atlas

* * Added basal and careportal to default plugins
* Changed report BG target to allow fractional numbers

* Increase load interval to 5 seconds

* Create codeql-analysis.yml

Co-authored-by: AdrianLxM <[email protected]>
Co-authored-by: Caleb <[email protected]>
Co-authored-by: inventor96 <[email protected]>
Co-authored-by: Jeremy Cunningham <[email protected]>
Co-authored-by: Sulka Haro <[email protected]>
Co-authored-by: Tanja <[email protected]>
Co-authored-by: Bartłomiej Szubert <[email protected]>
Co-authored-by: Andrew Dixon <[email protected]>
Co-authored-by: fedor apanasenko <[email protected]>
Co-authored-by: Petr Ondrusek <[email protected]>
Co-authored-by: Lukas Herzog <[email protected]>
Co-authored-by: Jakob <[email protected]>
Co-authored-by: jonfawcett <[email protected]>
Co-authored-by: Jonas Hummelstrand <[email protected]>
Co-authored-by: peterleimbach <[email protected]>
Co-authored-by: Adam Harrison <[email protected]>
Co-authored-by: Dominik Dzienia <[email protected]>
Co-authored-by: stephencmorton <[email protected]>
Co-authored-by: Simon Persson <[email protected]>
Co-authored-by: Cas Eliëns <[email protected]>
Co-authored-by: Ben West <[email protected]>
Co-authored-by: Matthew <[email protected]>
Co-authored-by: ireneusz-ptak <[email protected]>
Co-authored-by: josep1972 <[email protected]>
Co-authored-by: Bluefox <[email protected]>
Co-authored-by: fromorbonia <[email protected]>
Co-authored-by: VIS TFS Admin <[email protected]>
Co-authored-by: joracine <[email protected]>
Co-authored-by: Alexandre Viau <[email protected]>
Co-authored-by: Lennart Goedhart <[email protected]>
Co-authored-by: p5nbTgip0r <[email protected]>
Co-authored-by: Jeremy Cunningham <[email protected]>
Co-authored-by: kskandispersonal <[email protected]>
Co-authored-by: Petr Ondrusek <[email protected]>
Co-authored-by: Petr Ondrůšek <[email protected]>
Co-authored-by: Andras Feher <[email protected]>
Co-authored-by: Andy Feher <[email protected]>
Co-authored-by: bjornoleh <[email protected]>
Co-authored-by: Matt Gaide <[email protected]>
Co-authored-by: Lukas Herzog <[email protected]>
skibickipawel added a commit to skibickipawel/cgm-remote-monitor that referenced this pull request Dec 25, 2020
* mgdl -> mg/dl

* Release ref update v2 (nightscout#5301)

* Updated release name and number

* Added missing version number

* Added missing version number

* Fix auth dialog sizing error (nightscout#5315)

* Fix auth dialog sizing error (nightscout#5314)

* Fix auth dialog sizing error

* Fix Client Init After Auth

(cherry picked from commit 1bf416c)

* update NS minor version

* Bump version to 13.0.2-dev

* fix some random test failures (nightscout#5341)

* fix some random test failures

* use typeof to test for existence

* Added support for asking delta

* Added time reference

* Made delta reading more informative

* Corrected time reference

* Try shortening the response

* Revert attempt

* Updated templates and documentation

* Minor improvement in response when delta is 0

* German translations improved and added (nightscout#5360)

* Fix Alexa Launch and SessionEnded Requests (nightscout#5377)

* Fix Alexa Launch Request

* Allow LaunchRequest to handle intent if set, change shouldEndSession from string to bool

* Fix SessionEndedRequest

* Fix nightscout#5149 - discord link on CONTRIBUTING.md doesn't do anything (nightscout#5380)

* Fix nightscout#5146 - display of treatment with only Fat and Protein set (nightscout#5381)

* Basic report page style fixes and updates (nightscout#5387)

* Add missing Polish translations and improve existing (nightscout#5382)

* Add missing Polish translations and improve existing

* Improve translations

* Addressed virtual assistant usage with Authentication Roles (nightscout#5388)

* Fix nightscout#5347 - Addressed auth roles

* Unification

* Fix timeago alarms (again). The changes to the rendered had an unintended consequence of triggering the timeago detection less frequently, causing the code to think the client has been hibernating, thus suppressing the alarms. The update changes the clock to be updated more frequently (this updating the hibernation detection), fixing the issue

* Remove the server side test

* Fix Graph Display Without Recent Devicestatus (nightscout#5409)

* Update Russian (nightscout#5415)

Corrected major and minor misprints and mistakes - particularly in variables, new translations added

* Add server teardown ability (nightscout#5410)

* adding teardown event to ctx.bus

* adding teardown support for mmconnect and bridge plugins

* Additional German Translations and corrections (nightscout#5405)

* Cleaned up changed translations

* Added Virtual Assistant Translations

* Fix nightscout#5188 - move predictions to bundle and don't render chart on predictions offset change (nightscout#5395)

* Fix nightscout#5188 - move predictions to bundle and don't render chart on predictions offset change

* Fix predictions show for day to day

* Move toolbar and authentication status to partial and include on each page (nightscout#5393)

* Move authentication status to partial and include on each page

* Move toolbar to partial

Co-authored-by: Sulka Haro <[email protected]>

* Virtual assistant code simplification (nightscout#5400)

* Moved duplicate plugin code to single location, and small improvements

* Defined _each()

* Pr/5379 (nightscout#5441)

* Release 13.0.1 (nightscout#5329)

* Release ref update v2 (nightscout#5301)

* Updated release name and number

* Added missing version number

* Added missing version number

* Fix auth dialog sizing error (nightscout#5315)

* Fix auth dialog sizing error (nightscout#5314)

* Fix auth dialog sizing error

* Fix Client Init After Auth

(cherry picked from commit 1bf416c)

* update NS minor version

* Added handlers and translations for CGM info

* Defined translate()

* Fixed sensor state reference

* Improved wording for tx age response

* Improved wording for session duration response

* Updated documentation and templates

* Updated README.md TOC and a reference to it

* Added CGM battery info

* Added unit reference to CGM battery levels

* Added handlers and translations for CGM info

* Defined translate()

* Fixed sensor state reference

* Improved wording for tx age response

* Improved wording for session duration response

* Updated documentation and templates

* Updated README.md TOC and a reference to it

* Added CGM battery info

* Added unit reference to CGM battery levels

* Updated API reference in Google Home template

Co-authored-by: Caleb <[email protected]>

* Volunteer for Polish translations (nightscout#5396)

* Api3 output renderers (nightscout#5425)

* APIv3: adding framework for various output renderers

* APIv3: adding xml output renderer

* APIv3: adding csv output renderer

* APIv3: documenting supported output renderers

* APIv3: testing output renderers

* Restore glucose distribution test (nightscout#5434)

* Increase coverage of tests on units utility and clean up timeago test (nightscout#5435)

* Increase coverage of tests on units utility

* clean up timeago test

* Refactor to encapsulate duplicated settings logic (nightscout#5426)

* Encapsulate duplicate settings checks inside functions

* Simplify settings::isAlarmEventEnabled()

* Send coverage reports to Codacy (nightscout#5444)

* Send coverage reports to Codacy

* Action secrets may not be read from forks :(

* Let's see if this fixes the path & key passing

* Ok one more try for the Actions env

* Run tests and coverage separately

* Try increasing the admintools test runtime for Node 10

* Run tests only once

* Resolve unnecessary uses of eslint-ignore (nightscout#5436)

* Resolve unnecessary disabling of no-undef eslint rule

* Resolve unnecessary disabling of no-prototype-builtins eslint rule

* Resolve unnecessary disabling of no-unused-vars eslint rule

* Resolve unnecessary disabling of no-empty eslint rule

* Fix eslint errors and add npm script for eslint (nightscout#5427)

* re-enable auth check for device status routes

* Resolve eslint errors

* Add npm script for eslint

* Correct regex for express extension middleware and add tests for expected behaviour

* Resolve lint error in virtual assistant base

* Update index.js

* Update index.js

* Remove redundant checks on entry ID (nightscout#5440)

* Run CI Action for Pull Requests

* Update DayToDay report for Loop Overrides (nightscout#5452)

Add Loop override name/reason as text to the grey bar at the top of the graph.

* Fix earlier merge error with predictions having moved to the report bundle

* fix brushing loop (nightscout#5499)

* Update README.md (nightscout#5480)

Clarified that the "bridge" plugin is for Dexcom Share ("Dexcom" didn't appear at all in the read me), fixed a few typos, and added line 444 about the BRIDGE_SERVER variable.

* Added period of days into headline of glucose distribution and percen… (nightscout#5428)

* Added period of days into headline of glucose distribution and percentil chart report

I make screencopies of the glucose distribution and percential chart report for my diabtes consultant and had to manually add the period of days to the report everytime because it was not shown in the report itself.
I added the period of days this with a small number of lines of code and think this is helpful for other too.

* removed comments as requested

removed comments as requested

* Camelcase for new variables reportPlugins, firstDay, lastDay, countDays

* forget to save the change of reportPlugins in percentile.js

* Move app caching to a service worker (nightscout#5504)

* Move app caching to a webworker

* Code cleanup

* Code cleanup

* Make Codacy happy

* More parentheses

* Added indexes to 'entries' and 'treatments' along with other updates (nightscout#5463)

* Added compound indexes for treatments and entries collections. Updated ensureIndex to createIndex in mongo-strage.js as ensureIndex has been deprecated. Finally, updated testing/populate.js to be compatible with more recent versions of the node driver, as well as fixing a path issue.

* Fixed missing end quote in lib/server/treatments.js. Changed all newly added double quotes to single quote to match style guide.

* Removed indexes that referenced key600.

* Fix: Round interporlated mg/dL value to an integer

* Plugin to show database size (% of available space or in MiB) (nightscout#5496)

* Database size plugin - pill that displays current mongoDB database size

* Enabled dbsize by default

* Fixed bug with dbsize not shownig when size is (rounded) 0% but real bytes > 0

* Cleanup & update to iconfont generation manual

* Changed how warning/urgent levels are configured - from absolute MiB to percentage of DBSIZE_MAX

* Trying to fix random fail of APIv3 tests (nightscout#5519)

* APIv3: isolating documents from tests (not allowing clashes of calculated identifiers)

* removing unused async keyword

* client - mobile - Axis label font is scaled on small screens (nightscout#5512)

On phones or other small screens, the axis labels (especially x axis)
were previously an unreadable jumble of too-close letters

* Split view (nightscout#5518)

* Adds a 2, 3, 4 and 8 way split view option

* Updated description

* Generate the table on demand, so any number of sites from 1 to 8 generates a sensible layout

* Update readme & don't crash if a name is missing

* Allow flagging specific settings to be not exposed the /properties and /status APIs (nightscout#5525)

* Add more variables to the special list

* [DEV][FIX] Fix dbsize plugin to make it hideable again (nightscout#5529)

* [FIX] Making dbsize plugin default but hideable - removed its forced show state

* Removed unused lodash dependency

* Removed duplicate if statement (nightscout#5531)

Removed the additional if statement checking for the loop specific developer team id. This since the exact same if statement existed just above it.

* Update Dutch translations (nightscout#5532)

* Fix settings test

* Update version to 13.1.0

* Fix topbar collapse on small screens (nightscout#5562)

* Fix top bar collapsing on small screens

* Fix wide button array overflowing the button bar

* Option to switch off bolus amount outputs (nightscout#5522)

* Option to switch off bolus amount outputs (nightscout#5514)

* Fixing issue with carb value not be output when set to "none" (nightscout#5514)

* Adding additional output options (nightscout#5514)

* Adding environment variable option for 'x U and Over' option.

This option is BOLUS_RENDER_OVER with a default value of 1 and the value can be an integer or a float, e.g. 0.3, 1.5, 2, etc...

* Adding change to change the font size depending on the bolus value.

* Merge two "all" options to create an option that displays as SMB had.

* Fix d3 portrait to landscape brush failure (nightscout#5638)

* fix d3 portrait to landscape brush failure

* fix client.renderer.test for highlighBrushPoints function prototype change

* fix highlightBrush

* move brush reset inside check for valid brush

* Sanitize data from manual careportal entries so only fields with actual data are sent to the server (nightscout#5619)

* do not redirect to profile editor by default (nightscout#5671)

In a default configuration, there is no treatment data.  The code to redirect
the UI to the profile editor is buried deep within the chart rendering code for
basals.  This plugin is only supposed to go into action when enabled via
ENABLE=basal.  This commit fixes first-use experience for the default
configuration intended to draw real-time CGM traces and no basal information is
expected.  Since no basal information is expected unless plugin is enabled via
ENABLE=basal, this allows skipping instead of redirecting to the profile editor.

* Fix Issue nightscout#5486 - Device Status Days Feature (nightscout#5651)

* Device Status Days Feature

* Edits per review from @sulkaharo

* Configurable clock views (nightscout#5625)

* Configurable clock views

* Configurable clock views

* Configurable clock views

* Configurable clock views

* Configurable clock views

* Configurable clock views

* Update README.md

* Update README.md

* Configurable clock views

* Add remote bolus/carbs + otp entry for loop (nightscout#5598)

Add a remote bolus entry field for users on Loop, along with support for an OTP field

* Sometimes at the very start no profiles provided. (nightscout#5591)

At the first start the nightscout is crashed if profile not full.

* Fixes nightscout#4991 - Now selects basal profile based day by day (nightscout#5572)

* Test profile settings

* NPM Version change

* Use console log

* Use console log for client

* Use console log for client.sbx

* Use console log for client.ddata

* Use console log for client again

* revert

* Added multi-profile reporting capabilities

Co-authored-by: VIS TFS Admin <[email protected]>

* prepare hotfix for MMConnect/EU - 2020-06-28

Prepare to handle issue nightscout#5719.  This patch adjusts dependencies to
target a community edition fork of minimed-connect-to-nightscout.  The
new dependency targets information provided to begin addressing
changes to Medtronic Carelink services starting late June 2020.

* bump pointing at right tag

* prepare hotfix for MMConnect/EU - 2020-06-28

Prepare to handle issue nightscout#5719.  This patch adjusts dependencies to
target a community edition fork of minimed-connect-to-nightscout.  The
new dependency targets information provided to begin addressing
changes to Medtronic Carelink services starting late June 2020.

* bump pointing at right tag

* hotfix attempt 2 - carelink 2020 sso updates

* hotfix 3 - attempt 3 at carelink 2020 sso updates

* attempt 4 at hotfix for nightscout

Based on more reliable version of minimed-connect-to-nightscout....
This is testing the hotfix.  When it works, we will bump this one more
time with the newly released version.

* hotfix 5 - incorporates latest axios changes

* Fix for boluscalc issue (nightscout#5729)

Boluscalc fix & remove integer validation from BG input field

* npm install --save minimed-connect-to-nightscout@^1.4.0

* Change DISPLAY_UNITS to use readENV's default value and added several tests for DISPLAY_UNITS (nightscout#5708)

readENV() was hard coding the default value of DISPLAY_UNITS, and
ignoring the default value for no particular reason. Fixed that. Also, I
added a full test suite for DISPLAY_UNITS environment settings to make
sure that it works as intended. Finally, I've added the console log for
the DISPLAY_UNITS since there's no particular reason why we log that setting
and not others.

* Fix audit errors, button order (nightscout#5694)

* * Update packages giving npm audit errors
* Fix Mongo test that broke after update (now uses async/await on getting the connection)
* Restore original navigation bar button order

* Disable Node 10 tests

* Fix temporary target cancellation

* Added documentation on the use of Alpha Testing (nightscout#5784)

* Wip/bewest/mmconnect eu (nightscout#5731)

* prepare hotfix for MMConnect/EU - 2020-06-28

Prepare to handle issue nightscout#5719.  This patch adjusts dependencies to
target a community edition fork of minimed-connect-to-nightscout.  The
new dependency targets information provided to begin addressing
changes to Medtronic Carelink services starting late June 2020.

* bump pointing at right tag

* hotfix attempt 2 - carelink 2020 sso updates

* hotfix 3 - attempt 3 at carelink 2020 sso updates

* attempt 4 at hotfix for nightscout

Based on more reliable version of minimed-connect-to-nightscout....
This is testing the hotfix.  When it works, we will bump this one more
time with the newly released version.

Co-authored-by: Sulka Haro <[email protected]>

* * Updated several packages to remove issues from NPM audit
* Fix excess logging in settings.js
* Removed heapdump package, which was causing issues for some users

* * Limit the default number of profiles returned by the API to fix issues with users who are syncing a large amount of profiles from an APS.
* Fix profile reporting

* Upgrade Helmet to 4.0.0

* CSP and service worker improvements (nightscout#5856)

* Add connectSrc for Safari compatibiity
* Add new font URL for Google Fonts compatibility
* Reload on re-registering the worker
* Change Mongo version in github to fix builds

* Serve the CSP to everyone

* Split view CSP support (nightscout#5864)

* Parse split view frames into frameAncestors

* Re-enable CSP configuration (nightscout#5867)

* Re-enable CSP configuration

* Bump share2nightscout-bridge plugin

Use latest update from share2nightscout bridge to
make things easier.  It contains an updated
default for OUS users.

* feat Add robots.txt to disallow site crawling

* Fix dbsize for usage with Atlas (nightscout#5962)

* Openaps performance improvement (nightscout#5945)

* improve openaps plugin performance

* more performance improvements

(cherry picked from commit 076a2dd)

* correct setting notEnacted variable

* remove unnecessary debug logging

* Adapt to MongoDB Atlas (nightscout#5893)

* Fix Issue nightscout#5763 - Change $.ajax to /api/v1/profile (nightscout#5704)

* Bug fixes for Service Worker (nightscout#5970)

* Fix service worker refresh for Firefox

* Improve logging for service worker initialisation

* Skip browser cache for service worker precaching

* Prevent `Partial Content` responses in `fetch` by stripping `Range` header

* Prevent calling `filter` on an undefined property when service worker cache is empty

* Bug fixes for Service Worker

*    Fixes nightscout#5920
*    Fixes nightscout#5943

* Update service-worker.js

Removed the MP3 files from the preload to fix issues with webkit-based browsers

Co-authored-by: p5nbTgip0r <[email protected]>
Co-authored-by: Sulka Haro <[email protected]>

* Optimize Nightscout database usage (nightscout#5947)

* On periodic polls, only load delta for CGM data, treatments and device statuses
* Serve basic CGM data API queries from in-memory cache. Increases the Nightscout memory footprint but should significantly reduce the Mongo load
* Serve device status, CGM and treatment records from memory cache
* Support count parameter in /profile

* Bumping version to 14.0.0 given this is a relatively large update and we want people on Atlas to all migrate to this version

* Remove logging statements

* fix brushing recursion

* Normalize treatments to support absolute doses from the amount field

* Add Loop Carbs foodType, absorptionTime to Reports for ISSUE nightscout#5701 (nightscout#5702)

* add carb foodType, absorptionTime to reports

* Update README to point to new docs

* Fix `Treatments` report for `mmol/L` users

Fixed a typo to a client function name

* Bump version to 14.0.1

* Bump dev to 14.0.2

* Serve Last-Modified header for the service worker to help with some browsers misdetecting caching

* Cleaned old appcache references

* * Remove unnecessary logging to help with Papertrail limits
* Load more treatments and entries to fix caching issues (need to add better cache invalidation to really fix this)

* When merging inserts and updates from the database, ensure we always use the new data over the old data

* Bump treatment delta loading to four hours

* One more increase to treatment load time to cover long overrides

* * Bump version to 14.0.3
* Fix a bug in the REST API query for profiles

* Bumped up the number of treatments loaded / day for reporting

* Fix reports unit test

* Bump treatments default limit default to 1000 objects for queries that include other query parameters

* * Require created_at for Treatments on insert
* Refactoring the cache: moved to another file and support flushing from bus events

* Add support for CGM data and device statuses. Refactor dataloader to use the new model and reduce queries back down

* Fix data order for REST API

* * Add cache update events to websocket API
* Remove the validation for created_at in REST API ;(

* Remove excess logging

* Bump version to .4

* Bump version to 14.0.5 and fix nightscout#6050

* Fix Pebble API detecting mmol units from settings

* Make settings parsing whitespace tolerant

* * Fix security test
* Change boot and caching to expose Mongo connection errors

* Don't report an error on every reconnect

* Less intimidating error page on start, which also checks for api_secret

* Add file missing from last commit

* Fix tests

* Remove require statement breaking deploys

* Update --feature-request--.md

* Update --bug-report.md

* Update --individual-troubleshooting-help.md

* Fix memory leak and cache update issues in 14.0.4 (nightscout#6133)

* Fix a memory leak in 14.0.4
* Fix linter error in ddata.js
* Move data retention periods to caching
* Update _id of inserted entries and device status so merging to cache works correctly
* Reset the data in ddata before updating
* Fix typo on entry cache retention period
* Have device status cache retention period follow configuration
* Fix _id injection in treatments

* Add error cat to error page

* Fix MONGODB_URI reference in error message

* Bump version to 14.0.6

* Support uploading device statuses in batches (nightscout#6147)

* Support uploading device statuses in batches
* Correctly report batch insertion results

* Make empty cache detection a bit more aggressive to account for cache flush and data insert happening concurrently

* * Bump version to 14.0.7
* Add onerror handler for pushover

* Update README.md

Explicitly link to the application template in Github

* Fixed nightscout#5852 - Updated Google Home setup steps (nightscout#6195)

* Fix broken swagger for APIv3 (nightscout#6201)

* APIv3: isolating documents from tests (not allowing clashes of calculated identifiers)

* removing unused async keyword

* fixing api v3 swagger and moving it to /api3-docs

Co-authored-by: Petr Ondrusek <[email protected]>
Co-authored-by: Petr Ondrůšek <[email protected]>

* Use lodash.get() in virtual assistant API endpoints (v2) (nightscout#6199)

* Fixed nightscout#5632 - Improved value resolution

* More value resolution improvements

* Fixed a couple object paths

* Corrected setup of `dbsize` for virtual assistants (nightscout#6270)

* Corrected db size config for virtual assistants

* Language fix, improvements, added dbsize to virtAsst config

* Using env

* Added logging

* Debug logging

* Different logging

* More troubleshooting

* Another try

* Reverted stuff, added dbsize to server defaults

* Fixed test

* Fixed another test

* Create config.yml

* Delete --individual-troubleshooting-help.md

* Update config.yml

* Fix batch (nightscout#6248)

* Use the delta plugin data to show the delta in the clock views
* Update Node checks
* Fix disabling the BG alarms for simple alarms
* Load battery and other rare events up to two months back
* Possibly fixes compatibility with ios9 - needs testing
* Unified black and color clock layouts
* Update clock data every 20 seconds
* Update clock time every second
* Fix how CSP policy is set for Helmet, fixes nightscout#6260
* Authorization fix for misformatted URLs
* Added unit test for batch upload of CGM entries
* Improved / removed some logging
* Test if user is in read only mode when Nightscout starts and give an error if so

* Adding Hungarian translation to nightscout (nightscout#6037)


* Finished first round of translation for Hungarian language

* Added hungarian language to the readme file

* Fixes

* WIP

* Typo fixes and changes to translations

* Update language.js

Fixed some mistyped language keys

Co-authored-by: Andy Feher <[email protected]>
Co-authored-by: Sulka Haro <[email protected]>

* Update language.js (nightscout#6193)

Isfjell -> Istapp

Co-authored-by: Sulka Haro <[email protected]>

* nightscout#5991 Typo in translation (nightscout#6217)

Co-authored-by: Sulka Haro <[email protected]>

* add missing translations (nightscout#6346)

Co-authored-by: Sulka Haro <[email protected]>

* Updated Alexa's intents because Amazon required new ones yet again. (nightscout#6457)

* Add runtime state tracking to Nightscout, where client now checks if the server has loaded initial data from Mongo before the user is directed to the UI

* Add file missing from previous commit

* Update app.json

* Fix unit tests

* Fix the read detection to work correctly with MongoDB Atlas

* * Added basal and careportal to default plugins
* Changed report BG target to allow fractional numbers

* Increase load interval to 5 seconds

* Create codeql-analysis.yml

Co-authored-by: AdrianLxM <[email protected]>
Co-authored-by: Caleb <[email protected]>
Co-authored-by: inventor96 <[email protected]>
Co-authored-by: Jeremy Cunningham <[email protected]>
Co-authored-by: Sulka Haro <[email protected]>
Co-authored-by: Tanja <[email protected]>
Co-authored-by: Bartłomiej Szubert <[email protected]>
Co-authored-by: Andrew Dixon <[email protected]>
Co-authored-by: fedor apanasenko <[email protected]>
Co-authored-by: Petr Ondrusek <[email protected]>
Co-authored-by: Lukas Herzog <[email protected]>
Co-authored-by: Jakob <[email protected]>
Co-authored-by: jonfawcett <[email protected]>
Co-authored-by: Jonas Hummelstrand <[email protected]>
Co-authored-by: peterleimbach <[email protected]>
Co-authored-by: Adam Harrison <[email protected]>
Co-authored-by: Dominik Dzienia <[email protected]>
Co-authored-by: stephencmorton <[email protected]>
Co-authored-by: Simon Persson <[email protected]>
Co-authored-by: Cas Eliëns <[email protected]>
Co-authored-by: Ben West <[email protected]>
Co-authored-by: Matthew <[email protected]>
Co-authored-by: ireneusz-ptak <[email protected]>
Co-authored-by: josep1972 <[email protected]>
Co-authored-by: Bluefox <[email protected]>
Co-authored-by: fromorbonia <[email protected]>
Co-authored-by: VIS TFS Admin <[email protected]>
Co-authored-by: joracine <[email protected]>
Co-authored-by: Alexandre Viau <[email protected]>
Co-authored-by: Lennart Goedhart <[email protected]>
Co-authored-by: p5nbTgip0r <[email protected]>
Co-authored-by: Jeremy Cunningham <[email protected]>
Co-authored-by: kskandispersonal <[email protected]>
Co-authored-by: Petr Ondrusek <[email protected]>
Co-authored-by: Petr Ondrůšek <[email protected]>
Co-authored-by: Andras Feher <[email protected]>
Co-authored-by: Andy Feher <[email protected]>
Co-authored-by: bjornoleh <[email protected]>
Co-authored-by: Matt Gaide <[email protected]>
Co-authored-by: Lukas Herzog <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants