diff --git a/devdocs/deploy.txt b/devdocs/deploy.txt index da9bb01f..aaacb103 100644 --- a/devdocs/deploy.txt +++ b/devdocs/deploy.txt @@ -27,6 +27,9 @@ Make sure main.js in client devmode is set to false (should just keep it that wa ### run build-release.bat check for errors +## UPLOAD TEST to ayanova.com/download/next folder where it will be staged before officially being released and moved to parent download folder + + ### Test install to devops server ### Test install to windows server diff --git a/devdocs/todo.txt b/devdocs/todo.txt index 5b73fa0a..8b9a5d69 100644 --- a/devdocs/todo.txt +++ b/devdocs/todo.txt @@ -5,19 +5,57 @@ Import / export features TODO: OUTSTANDING FOR IMPORT: - + + DOCS regarding missing boolean value in csv and info on not leaving empty POST IMPORT TASKS - Test build installers, will they overwrite properly adn schema update properly?? + Test installer / upgrade + Linux server + - Ok, but needs upgrade shell script published somewhere + Linux Desktop standalone + TODO TEST DOCUMENT + Windows single standalone (should settle on naming scheme) + - OK, just stop the launcher if running, run setup, say no to overwrite config.json if edited, start the launcher + Windows lan + windows iis once working and confirmed post update and upate the beta forum with NEW RELEASE does forum working need to be changed to not only issues but new updates there as well? "Known issues / updates" - give to joyce for internal testing before posting as beta (1 day at max) - Need to test an update install without db erase so probably need to fire up IIS and win standalone if Joyce can't test - I'll test linux installers + + + Windows single would benefit from a backup and restore in a click kind of interface then could do the standalone install upgrade more easily? TEST FILE OPEN ON iPad device as the file input accept type may not work with apple +WINDOWS SINGLE LAUNCHER ISSUES: + Can windows single put it's db outside of the program files folder, i.e. can postgres be told to use a data folder instead? + only if it helps with the upgrade though, otherwise not much point + + Opens the windows server web page as well as the AyaNova web app but that's confusing as the first page is the windows server + instead should just show the web app + + Shutdown server in windows single gives error in server launcher window: + Shutting down Postgres database server... + Unhandled exception. System.InvalidOperationException: StandardIn has not been redirected. + at System.Diagnostics.Process.get_StandardInput() + at Program.
$(String[] args) in C:\data\code\raven-launcher\Program.cs:line 98 + + Launcher might be better if it was an actual application with a button to open AyaNova UI in browser and a shutdown button and a log windows showing what is in the server UI + rather than a dos command line looking thing + Also that could be the UI to do a db back up and restore maybe for upgrade?? + +Linux desktop installer issues + There are two installers just becuase of config.json data path, consolidate? + rename to linux-x64 drop -server and -desktop? + why do I need *any* root rights, shouldn't it all just work or is it becuase of postgre? + why do I need to chmod desktop for ./AyaNova when it works on server without doing that? + Upgrade seems to be remove everything EXCEPT config.json from /usr/sbin/ayanova since there is no data there anyway + then unzip the new version and restart + Is /usr/sbin really the correct folder for the binaries? + INSTALL DOCS ISSUE + Says stopping and starting in one section but only talks about stopping + can there be a desktop icon to start the server like windows single? + get back to docs completion @@ -62,6 +100,10 @@ critical path items: +#1 Task oriented simple view / dashboard type idea + something to get people going without having to flail around + identify common tasks and find ways to accomplish it as simply as possible + maybe dashboard has overlay floating menu for quick actions? @@ -828,12 +870,19 @@ client: Total : 295 files, 112234 codes, 6586 comments, 5547 blanks, all 124367 ####################################################################################################################################### -https://www.ayanova.com/download/v8-migrate.exe -https://www.ayanova.com/download/ayanova-windows-x64-single-setup.exe -https://www.ayanova.com/download/ayanova-linux-x64-desktop.zip -https://www.ayanova.com/download/ayanova-linux-x64-server.zip -https://www.ayanova.com/download/ayanova-windows-x64-lan-setup.exe -Current v8 docs home: https://www.ayanova.com/docs/ +These link to the "next" version of docs and installers, they will replace the current docs / installers once we decide it's ready +https://www.ayanova.com/download/next/v8-migrate.exe +https://www.ayanova.com/download/next/ayanova-windows-x64-single-setup.exe +https://www.ayanova.com/download/next/ayanova-linux-x64-desktop.zip +https://www.ayanova.com/download/next/ayanova-linux-x64-server.zip +https://www.ayanova.com/download/next/ayanova-windows-x64-lan-setup.exe +Current v8 docs home: https://www.ayanova.com/docs/next BUILD 8.0.0-beta.3 CHANGES OF NOTE +- No need to erase db will update schema automatically and add new translations +- Windows single install upgrade not supported / tested, will likely need changes to keep the db but update the code, I'm working on it now +- Import utility implemented properly administration->Import + documented fully + + diff --git a/docs/8.0/ayanova/docs/adm-import-customer.md b/docs/8.0/ayanova/docs/adm-import-customer.md index d19722b0..ba1d1285 100644 --- a/docs/8.0/ayanova/docs/adm-import-customer.md +++ b/docs/8.0/ayanova/docs/adm-import-customer.md @@ -104,6 +104,7 @@ The .json file must contain an **array** of one or more objects. ], "WebAddress": "https://example.org", "AlertNotes": null, + "BillHeadOffice": false, "TechNotes": null, "AccountNumber": "27263133", "Phone1": "534.467.2146", @@ -165,6 +166,6 @@ The first row of the .csv file must contain column headers that match the field ``` Name,Active,Notes,Wiki,Tags,WebAddress,AlertNotes,BillHeadOffice,HeadOfficeViz,TechNotes,AccountNumber,ContractViz,ContractExpires,Phone1,Phone2,Phone3,Phone4,Phone5,EmailAddress,PostAddress,PostCity,PostRegion,PostCountry,PostCode,Address,City,Region,Country,Latitude,Longitude Armstrong LLC,true,Ergonomic empowering project,,"black,purple,quince,zone1,zone4",https://example.biz,,true,XYZ HeadOffice,,88129181,Gold Contract,2022-12-30T00:00:00Z,(948) 817-1939,768-686-6990,(343) 810-7973,,,Talia.Terry53@example.net,7942 Herman Dale,Mabelville,Michigan,Denmark,53147,7937 Dale Estates,Mabelville,Michigan,Denmark,46.8059,-64.1016 -Adams Inc,true,Stand-alone clear-thinking contingency,,zone3,https://example.org,,,,,27263133,,,534.467.2146,(897) 987-0916 x510,(389) 833-8807,,,Ramona_Gulgowski@example.com,398 Mary Ridge,East Colbyberg,Rhode Island,Sierra Leone,41587,720 Jennie Green,East Colbyberg,Rhode Island,Sierra Leone,23.6209,-0.3821 +Adams Inc,true,Stand-alone clear-thinking contingency,,zone3,https://example.org,,false,,,27263133,,,534.467.2146,(897) 987-0916 x510,(389) 833-8807,,,Ramona_Gulgowski@example.com,398 Mary Ridge,East Colbyberg,Rhode Island,Sierra Leone,41587,720 Jennie Green,East Colbyberg,Rhode Island,Sierra Leone,23.6209,-0.3821 Bartell Inc,true,Devolved asynchronous info-mediaries,,zone7,http://example.org,,false,,,28202278,,,670.690.0352 x841,1-687-856-1614,1-665-462-1998 x08190,,,Autumn99@example.org,5112 Stanley Heights,North Hazelport,Alabama,Turkey,53994,5111 Wilkinson Bypass,North Hazelport,Alabama,Turkey,47.3514,161.4385 ``` diff --git a/docs/8.0/ayanova/docs/adm-import.md b/docs/8.0/ayanova/docs/adm-import.md index d389e3d5..2d1c8e04 100644 --- a/docs/8.0/ayanova/docs/adm-import.md +++ b/docs/8.0/ayanova/docs/adm-import.md @@ -146,6 +146,22 @@ To ensure the integrity of the data, import will _not_ be attempted if ther are CSV parsing errors come from a 3rd party utility and will be displayed in the English language only. +#### JSON Parsing errors + +If there is an issue with parsing the JSON file you may receive a Syntax error with further description: + +##### "Expected double quoted property name" syntax error + +This error is due to a trailing comma in the JSON structure, either in an individual record after the last field in that record or in the entire array of objects after the last object: + +Correct comma format: + +![correct comma placement image](img/adm-import-json-correctcomma.png) + +Invalid comma format: + +![not correct comma placement image](img/adm-import-json-incorrectcomma.png) + ### Maximum file size The actual limit on how many records can be imported / updated at once depends on many different things from individual browser limits, memory available, intermediate networking device and server configuration etc making it impossible to specify a limit. diff --git a/docs/8.0/ayanova/docs/img/adm-import-json-correctcomma.png b/docs/8.0/ayanova/docs/img/adm-import-json-correctcomma.png new file mode 100644 index 00000000..588909d3 Binary files /dev/null and b/docs/8.0/ayanova/docs/img/adm-import-json-correctcomma.png differ diff --git a/docs/8.0/ayanova/docs/img/adm-import-json-incorrectcomma.png b/docs/8.0/ayanova/docs/img/adm-import-json-incorrectcomma.png new file mode 100644 index 00000000..8a313ab0 Binary files /dev/null and b/docs/8.0/ayanova/docs/img/adm-import-json-incorrectcomma.png differ diff --git a/docs/8.0/ayanova/docs/ops-install-linux-desktop.md b/docs/8.0/ayanova/docs/ops-install-linux-desktop.md index aa92f258..2f732fed 100644 --- a/docs/8.0/ayanova/docs/ops-install-linux-desktop.md +++ b/docs/8.0/ayanova/docs/ops-install-linux-desktop.md @@ -1,4 +1,4 @@ -# AyaNova installation - linux desktop +# AyaNova installation - Linux desktop Please read through all the instructions below **before** proceeding with installation to be sure everything is available and ready. @@ -6,7 +6,7 @@ The "desktop" installation is appropriate for a single user of AyaNova on a Linu ## Linux distributions -These instructions were compiled and tested on an Ubuntu 21.10 Desktop OS however any Linux x64 distribution should work provided the ASP.NET Core framework can be installed to it. +These instructions were compiled and tested on an Ubuntu 21.10 Desktop OS however any Linux x64 distribution should work provided the ASP.NET Core framework can be installed to it, you may need to substitute your Linux distribution's package manager and shell equivalent to the Apt package manager and Bash shell script commands shown here. ## System requirements @@ -15,10 +15,12 @@ These instructions were compiled and tested on an Ubuntu 21.10 Desktop OS howeve - Disk space: minimum 2GB of free disk space - RAM : 1GB (minimum), 2+ GB (recommended) - Modern web browser with Javascript enabled +- Curl package installed +- Unzip package installed ## Installation procedure -### ASP.NET Core runtime +### 1/. ASP.NET Core runtime AyaNova requires the ASP.NET Core runtime version 6.0 or newer and Microsoft provides a step by step guide to install it properly on each version of Linux. @@ -37,13 +39,13 @@ dotnet --list-runtimes The AspNetCore runtime should be displayed with version 6 or newer: ``` -Microsoft.AspNetCore.App 6.0.2 [/usr/share/dotnet/shared/Microsoft.AspNetCore.App] -Microsoft.NETCore.App 6.0.2 [/usr/share/dotnet/shared/Microsoft.NETCore.App] +Microsoft.AspNetCore.App 6.0.3 [/usr/share/dotnet/shared/Microsoft.AspNetCore.App] +Microsoft.NETCore.App 6.0.3 [/usr/share/dotnet/shared/Microsoft.NETCore.App] ``` If you do not see this go through the installation steps above again. -### PostgreSQL server +### 2/. PostgreSQL server AyaNova requires access to a PostgreSQL database server version 12 or newer. If you do not have a PostgreSQL server already available then it must be installed to a location visible to the AyaNova server (same computer or a local computer on the same network). @@ -69,9 +71,9 @@ ALTER USER postgres PASSWORD 'YOUR_PASSWORD_HERE'; If successful psql will display "ALTER ROLE" in response and you can close the psql console by typing `\q` to quit. -### Create folders for AyaNova +### 3/.n Create folders for AyaNova -AyaNova requires two folders to be created, one to hold the AyaNova binary and other server and web application files and one to hold the AyaNova data. AyaNova will need to write to both these locations so be sure you choose locations with appropriate permissions. +AyaNova requires two folders to be created, one to hold the AyaNova binary and other AyaNova server and web application files and one to hold the AyaNova data. AyaNova will need to write to both these locations so be sure you choose locations with appropriate permissions. From the terminal: @@ -81,20 +83,35 @@ Create the data folder, for desktop linux we recommend your user home folder and sudo mkdir ~/.ayanova-data ``` -Create the AyaNova binary files folder. For desktop linux we recommend `/usr/bin/ayanova`. +Create the AyaNova binary files folder. For desktop linux we recommend `/opt/ayanova`. ```bash -sudo mkdir /usr/bin/ayanova +sudo mkdir /opt/ayanova ``` ### Download the AyaNova binaries archive +The AyaNova binaries are located here: [https://www.ayanova.com/download/ayanova-linux-x64-desktop.zip](https://www.ayanova.com/download/ayanova-linux-x64-desktop.zip) +While you can download with a browser and move the files we strongly recommend using the Linux Curl utility instead so that you can download from the terminal. + +Install Curl if not already installed: + +```bash +sudo apt install curl +``` + +Using curl utility: + +```bash +sudo curl -O https://www.ayanova.com/download/ayanova-linux-x64-desktop.zip +``` + Download the AyaNova server binary files to the folder created in the previous step or copy it there from the terminal: ```bash -sudo cp ayanova-linux-x64-desktop.zip /usr/bin/ayanova/ +sudo cp ayanova-linux-x64-desktop.zip /opt/ayanova/ ``` ### Unzip the archive @@ -145,6 +162,8 @@ Make changes and save with `ctr-x` and type `y` to answer "Save modified buffer? Start the server from the AyaNova bin folder in a terminal windows (ctrl-alt-t) +(Note: you must be **in** the AyaNova folder for AyaNova server to start without error `/opt/ayanova/`) + ```bash sudo ./AyaNova ``` @@ -164,6 +183,10 @@ Open your web browser and navigate to the AyaNova server URL. Assuming the defau To shut down the AyaNova server cleanly use the AyaNova web app form accessed from Server Operations -> Server State and the menu item Shut down server. Alternatively you can hard shut down AyaNova using the ctrl-c key combination in the terminal console window where AyaNova is running however this is not recommended. +To start the server from a terminal follow the [boot](#boot-and-test-ayanova-server) instructions above. + +To start the server from + ## Report rendering first time delay The very first time a report is rendered in AyaNova there will be a delay while the Chromium browser report rendering components are installed. diff --git a/docs/8.0/ayanova/docs/ops-install-linux-server.md b/docs/8.0/ayanova/docs/ops-install-linux-server.md index 9582cc66..5412ee68 100644 --- a/docs/8.0/ayanova/docs/ops-install-linux-server.md +++ b/docs/8.0/ayanova/docs/ops-install-linux-server.md @@ -71,8 +71,8 @@ dotnet --list-runtimes The AspNetCore runtime should be displayed with version 6 or newer: ``` -Microsoft.AspNetCore.App 6.0.2 [/usr/share/dotnet/shared/Microsoft.AspNetCore.App] -Microsoft.NETCore.App 6.0.2 [/usr/share/dotnet/shared/Microsoft.NETCore.App] +Microsoft.AspNetCore.App 6.0.3 [/usr/share/dotnet/shared/Microsoft.AspNetCore.App] +Microsoft.NETCore.App 6.0.3 [/usr/share/dotnet/shared/Microsoft.NETCore.App] ``` If you do not see this go through the installation steps above again. diff --git a/docs/8.0/ayanova/docs/ops-upgrade-linux-desktop.md b/docs/8.0/ayanova/docs/ops-upgrade-linux-desktop.md new file mode 100644 index 00000000..798c1663 --- /dev/null +++ b/docs/8.0/ayanova/docs/ops-upgrade-linux-desktop.md @@ -0,0 +1,38 @@ +# AyaNova linux desktop platform upgrade + +The linux desktop upgrade process involves replacing the AyaNova program files with the latest version and restarting the AyaNova server. + +### 1\. Backup + +Before proceeding, [make a backup](ops-form-backup.md) of the database **and** the attachment files and store it in a safe place. + +If you do not have a fresh backup there will be no way to recover from potential data loss or damage. + +### 2\. Stop the AyaNova server + +To shut down the AyaNova server cleanly use the AyaNova web app form accessed from Server Operations -> Server State and the menu item [Shut down server](ops-server-state.md#shutting-down-the-ayanova-server). + +Alternatively you can hard shut down AyaNova using the ctrl-c key combination in the terminal console window where AyaNova is running however this is not recommended. + +### 3\. Upgrade + +The following shell script will automatically remove the old AyaNova files, download and unzip the latest AyaNova files then start the server. + +From a terminal window run the following commands: + +```bash +cd /opt/ayanova && \ +sudo curl -O https://www.ayanova.com/download/ayanova-linux-x64-desktop.zip && \ +sudo rm *.dll && \ +sudo rm -r ./resource && \ +sudo rm -r ./wwwroot && \ +sudo unzip -o ayanova-linux-x64-desktop.zip -x "config.json" && \ +sudo chmod 777 ./AyaNova && \ +sudo ./AyaNova +``` + +If there is an issue or error break apart the commands and execute each one individually to find the error. + +AyaNova should restart on it's own and perform any database schema updates if required automatically. + +Open the login form in your browser and after a short delay you should see the new version number at the bottom of the login form. diff --git a/docs/8.0/ayanova/docs/ops-upgrade-linux-server.md b/docs/8.0/ayanova/docs/ops-upgrade-linux-server.md new file mode 100644 index 00000000..55c97da4 --- /dev/null +++ b/docs/8.0/ayanova/docs/ops-upgrade-linux-server.md @@ -0,0 +1,9 @@ +# AyaNova linux platform upgrade + +The linux upgrade process involves replacing the AyaNova program files with the latest version and restarting the AyaNova server. + +The following commands should be run from the shell in the AyaNova server folder. + +```bash +sudo curl -O https://www.ayanova.com/download/ayanova-linux-x64-server.zip +``` \ No newline at end of file diff --git a/docs/8.0/ayanova/docs/ops-upgrade-windows.md b/docs/8.0/ayanova/docs/ops-upgrade-windows.md new file mode 100644 index 00000000..edf84ef6 --- /dev/null +++ b/docs/8.0/ayanova/docs/ops-upgrade-windows.md @@ -0,0 +1,13 @@ +# AyaNova Windows platform upgrade + +Follow the upgrade instructions for your installation type below. + +## Single user upgrade + +### Local area network upgrade + +AyaNova server running alone and access directly by users within a local office network. + +### AyaNova server hosted through IIS upgrade + +AyaNova hosted via Microsoft Internet Information Server that is included with most editions of Windows. diff --git a/docs/8.0/ayanova/docs/ops-upgrade.md b/docs/8.0/ayanova/docs/ops-upgrade.md new file mode 100644 index 00000000..9d9b0ad7 --- /dev/null +++ b/docs/8.0/ayanova/docs/ops-upgrade.md @@ -0,0 +1,9 @@ +# AyaNova upgrade + +Choose your operating system for specific instructions: + +- [Windows 64bit](ops-upgrade-windows.md) +- [Linux server 64bit](ops-upgrade-linux-server.md) +- [Linux desktop 64bit](ops-upgrade-linux-desktop.md) + + diff --git a/docs/8.0/ayanova/mkdocs.yml b/docs/8.0/ayanova/mkdocs.yml index b6e5b798..ff352ef0 100644 --- a/docs/8.0/ayanova/mkdocs.yml +++ b/docs/8.0/ayanova/mkdocs.yml @@ -131,6 +131,8 @@ nav: - 'Linux': 'ops-install-linux.md' - 'Linux desktop': 'ops-install-linux-desktop.md' - 'Linux server': 'ops-install-linux-server.md' + - Upgrade: + - 'Start': 'ops-upgrade.md' - Migration: - 'Migrating from AyaNova 7': 'ops-import-v7.md' - Backup & Restore: diff --git a/server/AyaNova/util/AySchema.cs b/server/AyaNova/util/AySchema.cs index 7680e004..09f75011 100644 --- a/server/AyaNova/util/AySchema.cs +++ b/server/AyaNova/util/AySchema.cs @@ -1330,9 +1330,9 @@ $BODY$ LANGUAGE PLPGSQL STABLE"); where t.baselanguage = 'en' */ - //MAKE SURE THE DESIRED SCHEMA WAS SET PROPERLY + //Handle newer schema than expected (user ran a new version then downgraded ayanova) if (currentSchema > DESIRED_SCHEMA_LEVEL) - throw new ArgumentOutOfRangeException("AySchema::DesiredSchemaLevel WASN'T SET PROPERLY"); + throw new ArgumentOutOfRangeException($"DB Schema error: the database has a newer schema version {currentSchema} than this version of AyaNova expects {DESIRED_SCHEMA_LEVEL}\nThis version of AyaNova is older than a previous version that was used with this database and is not compatible with the new database format.\nUpgrade AyaNova or restore a backup of the database from before the newer version of AyaNova was used.");