From 195cd8ef1979029c053fa8d96e4e63c6869f257a Mon Sep 17 00:00:00 2001 From: John Cardinal Date: Tue, 8 Nov 2022 00:01:18 +0000 Subject: [PATCH] --- docs/8.0/ayanova/docs/adm-getting-started.md | 92 +-------- ...ap-configure-change-superuser-password.png | Bin 0 -> 39773 bytes .../ayanova/docs/ops-install-linux-desktop.md | 2 +- .../ayanova/docs/ops-install-linux-server.md | 3 +- .../ayanova/docs/ops-install-windows-iis.md | 3 +- .../ayanova/docs/ops-install-windows-lan.md | 3 +- .../docs/ops-install-windows-single.md | 3 +- docs/8.0/ayanova/docs/ops-intro.md | 4 +- .../ayanova/docs/tour-bootstrap-configure.md | 175 +++++++++++++++++- docs/8.0/ayanova/mkdocs.yml | 2 +- 10 files changed, 179 insertions(+), 108 deletions(-) create mode 100644 docs/8.0/ayanova/docs/img/tour-bootstrap-configure-change-superuser-password.png diff --git a/docs/8.0/ayanova/docs/adm-getting-started.md b/docs/8.0/ayanova/docs/adm-getting-started.md index fe654d0d..239e9077 100644 --- a/docs/8.0/ayanova/docs/adm-getting-started.md +++ b/docs/8.0/ayanova/docs/adm-getting-started.md @@ -1,40 +1,4 @@ -# Administration - getting started - -The following are common steps for the AyaNova business Administrator to get AyaNova ready for business use. - -We also have a [technical guide](ops-intro.md) to server operations and maintenance with important guidance for the server operations manager to ensure the AyaNova server runs smoothly and data is safe and protected. - -Not all steps are necessary, some may not apply to your business. Most of the items below can be modifed later as your needs change. - -Here we will provide links to the help pages for each item rather than repeating the information in each step of this document. - -We encourage you to read up on each item's documentation page as you come to it if you are not already familiar with it from the evaluation process. - -## Licensing - -The first step in using AyaNova for production use is obtaining and installing a license. - -Licenses are controlled from the Administration [license form](adm-license.md) in AyaNova which contains links to view, purchase and install an AyaNova license. - -## Change the superuser password - -The superuser User account in AyaNova is always present, can not be erased and is intended to be used only to create other Users and to initiate specific operations that are considered 'dangerous'. - -The first and most important step in securing your AyaNova server is [changing the superuser password](home-password.md) from the default `l3tm3in`. - -It is **critically important** to do this before taking any further steps; particularly before creating _any_ Users. - -Failing to do this would mean you will have no effective security as the AyaNova superuser password is well known and could be used by anyone to cause significant damage to your data or create more Users with administrative level privileges. - -Once AyaNova is licensed, if you log in as the superuser with the default password `l3tm3in`, you will be taken automatically to the change password form to encourage it to be changed. - -We have [specific guidelines](home-password.md#long-not-complicated) for the latest best practices in choosing a secure password and we encourage you to read about it and follow the advice written there in order to choose an easy to memorize, secure password that does not need to be written down or stored insecurely. - -We also strongly recommend the use of [Two factor authentication](home-tfa.md), in particular with the superuser User but also with any User account with a Business Administration [role](ay-biz-admin-roles.md) which can be used to create Users or grant them higher permission levels. - -### What if I lose my superuser password? - -No worries, AyaNova has a [built in method](ops-config-set-superuser-pw.md) to recover the superuser account provided you have shell / command line access to the AyaNova server. +# Administration - XXXXXXXXXXXXXXXXXXXX ## Erase evaluation data @@ -42,60 +6,6 @@ Once AyaNova is licensed it's time to erase any sample data so you can get start The License form contains the Erase database menu option which you should [read about now](adm-license.md#erase-database) to understand what will happen and what exact items will be kept before erasing the sample data and proceeding to the next step. -## Create tax codes - -Now is a good time create your [Tax codes](acc-tax-codes.md) as they will need to be selected in later steps. Tax codes are optional but generally necessary for most businesses. - -## Create service and travel rates - -[Service / Labor rates](acc-service-rates.md) must be entered in advance so they can be selected on work orders. - -[Travel rates](acc-travel-rates.md) should be entered now if they are appropriate for your business. - -## Configure global settings - -Now that tax codes and rates have been entered it's time to set the [Global settings](adm-global-settings.md). - -We encourage you to read the help documentation for each item as there are some important and time saving features here. - -There's a lot of things that can be set here and not all of it needs to be configured immediately but it is a good idea to at minimum set these items to get started: - -- [Business settings section](adm-global-settings.md#business-settings), configure all items here that are applicable to your business -- [Company information](adm-global-settings.md#company-information-settings), set this up as completely as possible, these values are used in many places in AyaNova. -- [Business logos](adm-global-settings.md#business-logos), it is not necessary to set your business logo, AyaNova will work without them, however they will be used in reports and other areas that may be seen by your Customers so it's a good idea, particularly if you are going to be using any of the [Customer access features](adm-global-settings.md#customer-access-settings) in future. - -## Create Users - -[Create User accounts](adm-users.md) for your staff and set up initial logins (which they can change on their own later). - -We recommend limiting the [authorization roles](ay-biz-admin-roles.md) initially granted to your Users so that they only have the minimum required to do their job and only adding more access later as required. - -You should create a User account for every User who will be using AyaNova. AyaNova does not permit the same User account to be in active use for more than one user at a time. - -When you create the User accounts, give each User a temporary password and encourage them to change it immediately when they first log in following our [recommended best practices](home-password.md#long-not-complicated) for choosing a password. - -While it's a good idea for any User, if the User has been granted the Business administration role we particularly encourage you to have them set up [Two factor authentication](home-tfa.md) to ensure the highest level security for what is a very powerful role in AyaNova. - -## Create a Business Administration User for yourself - -No one should use the superuser account on a regular basis for day to day work. It is not intended for that purpose and we will be further restricting non administrative features available to the superuser User in upcoming releases. - -The superuser User should be reserved for specific needs only and your day to day work should be done with a User account created with the roles you need including the Business administration role. - -Be sure to set up two factor authentication for your own business administration account, particularly if you will be accessing AyaNova from a public network. - -## Create vendors - -[Vendors](vendors.md) are used all over AyaNova and are required for inventory and other features. - -## Create parts and opening inventory - -If your shop does not use Inventory or Parts you can skip this section. - -The [Part](inv-parts.md) form is used to create the parts you will be selecting on work orders in the course of providing service. - -Once a Part has been created you can enter an [opening inventory](inv-part-inventory-transactions.md) for it as well as any [serial numbers](inv-part-serials.md) on hand if used. - ## Subscribe to notifications There are many [automatic notifications](home-notify-subscriptions.md) available in AyaNova, many of particular interest to the business administrator and now is a good time to set up any that are of use in your business. diff --git a/docs/8.0/ayanova/docs/img/tour-bootstrap-configure-change-superuser-password.png b/docs/8.0/ayanova/docs/img/tour-bootstrap-configure-change-superuser-password.png new file mode 100644 index 0000000000000000000000000000000000000000..1bdcb0850593546cfe5c8f3fbe7beee26952df3b GIT binary patch literal 39773 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

}<_G=hVBBa&`J@r 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 Tyg(a^PvC_?ANH;DiMsf2%?%5u literal 0 HcmV?d00001 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 9edc8400..0a1ef742 100644 --- a/docs/8.0/ayanova/docs/ops-install-linux-desktop.md +++ b/docs/8.0/ayanova/docs/ops-install-linux-desktop.md @@ -181,4 +181,4 @@ The next step is to [login](ay-start-login.md), request or install a [license](a To ensure AyaNova runs smoothly and data is safe and secure be sure to look over the [Server operations](ops-intro.md) configuration and maintenance guide. -For Business administration and setting things up from a business perspective, review the [Getting started](adm-getting-started.md) guide for Administrators. +For Business administration and setting things up from a business perspective, review the [Getting started - Set up for production use](tour-bootstrap-configure.md) step in our Getting started guided tour. 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 b61f8ab8..b8a9f3f8 100644 --- a/docs/8.0/ayanova/docs/ops-install-linux-server.md +++ b/docs/8.0/ayanova/docs/ops-install-linux-server.md @@ -609,7 +609,8 @@ The next step is to [login](ay-start-login.md), request or install a [license](a To ensure AyaNova runs smoothly and data is safe and secure be sure to look over the [Server operations](ops-intro.md) configuration and maintenance guide. -For Business administration and setting things up from a business perspective, review the [Getting started](adm-getting-started.md) guide for Administrators. +For Business administration and setting things up from a business perspective, review the [Getting started - Set up for production use](tour-bootstrap-configure.md) step in our Getting started guided tour. + ### Report rendering first time delay diff --git a/docs/8.0/ayanova/docs/ops-install-windows-iis.md b/docs/8.0/ayanova/docs/ops-install-windows-iis.md index 5e87e93f..127b6c3f 100644 --- a/docs/8.0/ayanova/docs/ops-install-windows-iis.md +++ b/docs/8.0/ayanova/docs/ops-install-windows-iis.md @@ -385,4 +385,5 @@ The next step is to [login](ay-start-login.md), request or install a [license](a To ensure AyaNova runs smoothly and data is safe and secure be sure to look over the [Server operations](ops-intro.md) configuration and maintenance guide. -For Business administration and setting things up from a business perspective, review the [Getting started](adm-getting-started.md) guide for Administrators. +For Business administration and setting things up from a business perspective, review the [Getting started - Set up for production use](tour-bootstrap-configure.md) step in our Getting started guided tour. + diff --git a/docs/8.0/ayanova/docs/ops-install-windows-lan.md b/docs/8.0/ayanova/docs/ops-install-windows-lan.md index 621a7001..84a578fa 100644 --- a/docs/8.0/ayanova/docs/ops-install-windows-lan.md +++ b/docs/8.0/ayanova/docs/ops-install-windows-lan.md @@ -216,4 +216,5 @@ The next step is to [login](ay-start-login.md), request or install a [license](a To ensure AyaNova runs smoothly and data is safe and secure be sure to look over the [Server operations](ops-intro.md) configuration and maintenance guide. -For Business administration and setting things up from a business perspective, review the [Getting started](adm-getting-started.md) guide for Administrators. +For Business administration and setting things up from a business perspective, review the [Getting started - Set up for production use](tour-bootstrap-configure.md) step in our Getting started guided tour. + diff --git a/docs/8.0/ayanova/docs/ops-install-windows-single.md b/docs/8.0/ayanova/docs/ops-install-windows-single.md index c08e5b61..189fbfff 100644 --- a/docs/8.0/ayanova/docs/ops-install-windows-single.md +++ b/docs/8.0/ayanova/docs/ops-install-windows-single.md @@ -97,4 +97,5 @@ The next step is to [login](ay-start-login.md), request or install a [license](a To ensure AyaNova runs smoothly and data is safe and secure be sure to look over the [Server operations](ops-intro.md) configuration and maintenance guide. -For Business administration and setting things up from a business perspective, review the [Getting started](adm-getting-started.md) guide for Administrators. +For Business administration and setting things up from a business perspective, review the [Getting started - Set up for production use](tour-bootstrap-configure.md) step in our Getting started guided tour. + diff --git a/docs/8.0/ayanova/docs/ops-intro.md b/docs/8.0/ayanova/docs/ops-intro.md index 145c345d..fe9a8ae3 100644 --- a/docs/8.0/ayanova/docs/ops-intro.md +++ b/docs/8.0/ayanova/docs/ops-intro.md @@ -1,8 +1,8 @@ # AyaNova server operations guide -This guide is an overview of the technical aspects of AyaNova for a server operations manager. Be sure to read through to the bottom for the guidance in ongoing maintenance of the AyaNova server to ensure smooth operation, privacy and data protection. +This guide is an overview of the technical aspects of AyaNova for a server operations manager. Be sure to read through to the bottom for the guidance in ongoing maintenance of the AyaNova server to ensure smooth operation, privacy and data protection. -We also have a [business administration guide](adm-getting-started.md) for a business administrator configuring the business settings in AyaNova. +For Business administration and setting things up from a business perspective, we have a [Getting started - Set up for production use](tour-bootstrap-configure.md) step in our Getting started guided tour. ## AyaNova system architecture diff --git a/docs/8.0/ayanova/docs/tour-bootstrap-configure.md b/docs/8.0/ayanova/docs/tour-bootstrap-configure.md index 3880af2e..31fcf9fe 100644 --- a/docs/8.0/ayanova/docs/tour-bootstrap-configure.md +++ b/docs/8.0/ayanova/docs/tour-bootstrap-configure.md @@ -6,13 +6,53 @@ The following is a _suggested_ order for setting up AyaNova for production use. These are suggestions only, you do not necessarily have to do things in this manner, many items can be entered on the fly but it's helpful to go through this and follow the help links. -## Export first +## 1\. Secure AyaNova + +The first step is to secure AyaNova to ensure no one can access it without permission. + +### Change the superuser password + +The superuser User account in AyaNova is always present, can not be erased and is intended to be used only to create other Users and to initiate specific operations that are considered 'dangerous'. + +The first and most important step in securing your AyaNova server is [changing the superuser password](home-password.md) from the default `l3tm3in`. + +![change password](img/tour-bootstrap-configure-change-superuser-password.png) + +(You will see this warning if you login to a licensed AyaNova with the default superuser password) + +It is **critically important** to do this before taking any further steps; particularly before creating _any_ Users. + +Failing to do this would mean you will have no effective security as the AyaNova superuser password is well known and could be used by anyone to cause significant damage to your data or create more Users with administrative level privileges. + +Once AyaNova is licensed, if you log in as the superuser with the default password `l3tm3in`, you will be taken automatically to the change password form to encourage it to be changed. + +We have [secure password guidelines](home-password.md#what-is-a-secure-password) for the latest best practices in choosing a secure password and we encourage you to read about it and consider the advice written there in order to choose an easy to memorize, secure password that does not need to be written down or stored insecurely. + +We also strongly recommend the use of [Two factor authentication](home-tfa.md), in particular with the superuser User but also with any User account with a Business Administration [role](ay-biz-admin-roles.md) which can be used to create Users or grant them higher permission levels. + +### What if I lose my superuser password? + +No worries, AyaNova has a [built in method](ops-config-set-superuser-pw.md) to recover the superuser account provided you have shell / command line access to the AyaNova server. A subscription server superuser password can be reset by contacting technical support from your registered email address and verifying your identity if requested. + +### Disable sample Users + +This sub-step only applies if you will be keeping the sample data. + +In a later step you will either erase the generated sample database or keep it and selectively erase items you don't want to keep. + +Erasing the database will remove all Users other than the built in SuperUser account and if that is what you will be doing you do not need to deal with the generated sample Users. + +If you have decided to _not_ erase the sample database entirely then you should make sure that the sample Users generated by AyaNova are either deleted or de-activated so you free up a license for your own Users and to secure your database no one can login with those User accounts. + +Login as the SuperUser, open each sample [User record](adm-users.md) and either remove the checkmark from their Active property and save them or delete them. It's likely that you won't be able to delete them at first as there is still sample data tied to them and AyaNova won't allow a User to be deleted once there is other data tied to that User, but you can de-activate them preventing login and freeing up a license. + +## 2\. Export Before erasing the AyaNova database to clear out any sample data there may be some things you want to keep for production use. #### What if I want to keep a _lot_ of data? -If there is a _lot_ of data that was entered during evaluation that you would want to keep it might make more sense to _not_ erase the database but instead selectively erase the sample data you _don't_ want to keep. +If there is a _lot_ of data that was entered during evaluation that you would want to keep it might make more sense to _not_ erase the database in step 2 below but instead selectively erase the sample data you _don't_ want to keep. The [Delete extension](ay-ex-delete.md) can be useful for this purpose, it allows you to mass delete most object types in AyaNova. You can fine tune what gets deleted by selectively filtering and sorting the data table containing the data to be deleted first. @@ -28,15 +68,132 @@ If you have made a customized translation for AyaNova you want to keep, use the If there are any items of data that were entered that you want to export and later re-import, for example Customers first have a look at the [Import feature documentation](adm-import.md) and confirm that the data type you want to import is supported. -Use the [Export extension](ay-ex-export.md) to export the data you want to keep. +Use the [Export extension](ay-ex-export.md) to export the specific data you want to keep so you can import it back later. -================================================================ +## 3\. Erase evaluation data -- Export anything want to keep that will be erased when cleaning it out -- Erase sample, test data if any -- Import back exported stuff that want to keep -- Ops backup setup and backup plan - - configure, test, start immediately +It's time to erase any sample data so you can get started with your own. + +You must be logged in as the SuperUser User account to erase the database. + +The following has a link to the Erase database manual section which has important information about what will and will not be erased and it's important to read through that section before you erase your database. + +The AyaNova database is erased from the License form using the [Erase database](adm-license.md#erase-database) menu option. + +Once you have read and understand what will happen when erasing the database and are ready to do so, go ahead and take that option. + +## 4\. Create a Business Administration role User + +Several of the following steps will require being logged in as a User with the [Business administration Authorization Role](ay-biz-admin-roles.md#business-administration). + +If you are following this guide it's very likely _you_ are the Business Administration role user, create a new User account that you will use for setting up and configuring AyaNova now. + +Assign this User the Business administration role and a reminder that any User with the Business Admin Role has the power to create Users and change passwords so this is a **powerful** User account and it **must** have a [secure password](home-password.md#what-is-a-secure-password) and ideally [two factor authentication](home-password.md#backed-up-by-two-factor-authentication) as well. + +#### System operations role + +If you are also the person responsible for ensuring AyaNova data is backed up then you will want to give your User account the [System Operations Authorization Role](ay-biz-admin-roles.md#system-operations) so you can setup the backup process. + +Test and confirm you can login as this User before continuing. + +## 5\. Import + +If you have exported any data in step 2 [above](#2-export) now is the time to import it back. + +### Import report templates + +Import exported report templates using the [report template import export](adm-report-templates.md#how-to-import-and-export-report-templates) feature. + +### Import custom translations + +Import any exported translations using the [Translation import](adm-translations.md#importing-translations) feature. + +### Import data + +Import your data back using the [Import feature](adm-import.md). + + +## 6\. Backup configuration + +Before we go any further it's time to make sure your backup is configured and works and that you have a backup plan and procedures in place. + +AyaNova is safe and secure and uses a reliable database server but there's always the risk of natural disaster, fire, theft, hardware failure etc. + +A properly implemented backup system can have you back up and running quickly with minimal interruption. + +We have a full [backup guide](ops-form-backup.md) that covers how to set up the backup and best practices to follow to ensure you don't lose your data. + +Read that guide to learn important safety precautions such as why it's not good enough to setup an automated backup and forget about it, the data **must be stored off-site**. + +Regardless of whether you have a self installed instance of AyaNova you are running on premise or if you are using AyaNova as a subscription service you must implement a proper, safe backup system. + +Once this step is completed and you are confident your backup process is in place and your data secure it's safe to proceed. + +## 7\. Create tax codes + +Now is a good time create your [Tax codes](acc-tax-codes.md) as they will need to be selected when configuring Global settings later. + +Tax codes are optional but generally necessary for most businesses using AyaNova. + +## 8\. Create Service and Travel rates + +Again like tax codes these are items that need to be in place so they can be selected when configuring Global settings later. + +[Service / Labor rates](acc-service-rates.md) must be entered in advance so they can be selected on work orders. + +[Travel rates](acc-travel-rates.md) should be entered now if they are appropriate for your business. + +## 9\. Configure global settings + +Now that tax codes and rates have been entered it's time to set the [Global settings](adm-global-settings.md). + +We encourage you to read the help documentation for each item as there are some important and time saving features here. + +There's a lot of things that can be set here and not all of it needs to be configured immediately but it is a good idea to at minimum set these items to get started: + +- [Business settings section](adm-global-settings.md#business-settings), configure all items here that are applicable to your business +- [Company information](adm-global-settings.md#company-information-settings), set this up as completely as possible, these values are used in many places in AyaNova. +- [Business logos](adm-global-settings.md#business-logos), it is not necessary to set your business logo, AyaNova will work without them, however they will be used in reports and other areas that may be seen by your Customers so it's a good idea, particularly if you are going to be using any of the [Customer access features](adm-global-settings.md#customer-access-settings) in future. + +## 10\. Create Users + +[Create User accounts](adm-users.md) for your staff and set up initial logins (which they can change on their own later). + +We recommend limiting the [authorization roles](ay-biz-admin-roles.md) initially granted to your Users so that they only have the minimum required to do their job and only adding more access later as required. + +You must create a separate User account for every User who will be using AyaNova. + +AyaNova does not permit the same User account to be logged in more than once at a time. + +When you create the User accounts, give each User a temporary password and encourage them to change it immediately when they first log in following our [recommended best practices](home-password.md#what-is-a-secure-password) for choosing a password. + +While it's a good idea for any User, if the User has been granted the Business administration role we particularly encourage you to have them set up [Two factor authentication](home-tfa.md) to ensure the highest level security for what is a very powerful role in AyaNova. + +## Create a Business Administration User for yourself + +No one should use the superuser account on a regular basis for day to day work. It is not intended for that purpose and we will be further restricting non administrative features available to the superuser User in upcoming releases. + +The superuser User should be reserved for specific needs only and your day to day work should be done with a User account created with the roles you need including the Business administration role. + +Be sure to set up two factor authentication for your own business administration account, particularly if you will be accessing AyaNova from a public network. + +## Create vendors + +[Vendors](vendors.md) are used all over AyaNova and are required for inventory and other features. + +## Create parts and opening inventory + +If your shop does not use Inventory or Parts you can skip this section. + +The [Part](inv-parts.md) form is used to create the parts you will be selecting on work orders in the course of providing service. + +Once a Part has been created you can enter an [opening inventory](inv-part-inventory-transactions.md) for it as well as any [serial numbers](inv-part-serials.md) on hand if used. + + + + + +================================ - v7 quickstart stuff kind of from here down - Set up business settings in global settings diff --git a/docs/8.0/ayanova/mkdocs.yml b/docs/8.0/ayanova/mkdocs.yml index f8090ec4..928e26b8 100644 --- a/docs/8.0/ayanova/mkdocs.yml +++ b/docs/8.0/ayanova/mkdocs.yml @@ -104,7 +104,7 @@ nav: - 'Travel rates': 'acc-travel-rates.md' - 'Tax codes': 'acc-tax-codes.md' - Administration: - - 'Getting started': 'adm-getting-started.md' + - 'Getting started guided tour': 'tour-bootstrap-configure.md' - 'Global settings': 'adm-global-settings.md' - 'Seed numbers': 'adm-global-seeds.md' - 'License': 'adm-license.md'