-
Notifications
You must be signed in to change notification settings - Fork 4
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
ForestGEO Pilot Application - First Iteration #163
Merged
Merged
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
… application --> will make sure that modal does not redisplay while navigating around hub routes
…be somewhat dynamic, and not all endpoints require quadrat/census selection, the previous system of only plot selection will be fitted in place fo the plot/quadrat/census breadcrumb system that was previously in place
…g quadratsperplot API endpoint
…access to other contexts
…drat lists and census list
…drat lists and census list
…drat lists and census list
…ented. Spacing added in files to better show function
divided uploaded file display into two displays, one for CSV and one for ArcGIS , additional changes to API structure to accommodate new schema and refit system to start accepting file uploads to specific tables instead of just single-type file uploads
…to add prompt to identify which table is being uploaded to.
…ated --> adding it back
…rror return from api call to storage account
… a user is signing back in or logging in for the first time. resolving additional sonarlint warnings/errors in sidebar, etc. updating schema generation script
…g file upload system to dynamically process files based on detected headers, etc. reworking other elements of the system to utilize MaterialUI instead of TailwindCSS and updating plugins
…s been implemented to partially build out the dynamic file upload system. adding baseline Jest files to start the process of building out tests
… user selection when uploading files
…lection back and referencing the existing plotselection and censusselection systems in entrymodal and endpoint to create a third selection matrix for quadrats for future use. updating the container client creation/selection system to isolate by plot && census instead of just plot to better track fixed background data file input
Update note -- after reviewing the functionality again, choosing a site does in fact reset plot/census/quadrat selection, prompting the user to re-assign a plot/census. |
justinpac
reviewed
Apr 2, 2024
justinpac
reviewed
Apr 2, 2024
justinpac
reviewed
Apr 2, 2024
133a5b5
to
b80519d
Compare
…from git circulation and added to the gitignore, certificate value has been added to github secrets and a new DigiCertGlobalRootCA.crt.pem file will be dynamically created and populated as part of build process
justinpac
approved these changes
Apr 7, 2024
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Hi guys, I understand this is an absolute monster of a PR! It's kind of snowballed into a huge thing over the last few weeks, here's a quick changelog of the core changes that this PR is integrating:
datagridhelpers.ts
, currently hard-codes in each grid use case and will need to be updated as new endpoints are added or removed, but this has simplified the system a good deal.api/sqlload
. This endpoint then pipes the row (depending on its form type) to a dedicated processor file that performs SQL operations. A simple loading interface is implemented to show progress of SQL upload, and a basic 5-second countdown timer and circular progress component is displayed once the upload is completed which then automatically moves the user to the next phase of file upload.cmverrors
table is updated with each measurement that fails validation and the validation type that it failed. Once the update validation stage is reached, thecoremeasurements
table is polled to locate all rows that have theIsValidated
field set to false and thecmverrors
table is in turn polled to locate rows that failed validation. These two sets are subtracted from each other to locate the rows that successfully passed validation, and only these rows'IsValidated
fields are set to true. As a result, when a row fails validation, it remains marked as unvalidated, and is included in later validation runs., This gives the user an opportunity to reupload data to update that row and then re-run validation on it to determine whether the updated row passed validation. The validation procedures have been further refined to ensure that duplicate entries are not added to thecmverrors
table -- if a row fails the same validation twice, it will only have one correspondingcmverrors
entry. Next steps here: the re-test validation system needs to be updated to ensure that rows that first failed validation and then passed have theircmverrors
table entries removed once they pass all validations. The user is then shown a 5-second countdown timer before being moved to the next phase.catalog
database has been added, containing tables identifying users, sites, and plots. Additional junction tables connecting users to specific sites and specific plots have also been added (the plot-specific filtering has not yet been applied. I want to get confirmation that users should/shouldn't have access to all plots before I invest additional time in implementing this. In the event that this is not needed, this feature will be removed).catalog
to determine if 1) the user's email exists in theusers
table, 2) whether the user is an admin, 3) what sites the user has access to, and 4) all sites the user could have access to. These four objects are then incorporated into the user's JWT token and corresponding session. When the user selects a site, a corresponding schema name is then selected. This schema name is then passed to all API endpoints to ensure that the user is correctly polling the right schema. Because the core table structure will remain the same between schemas, only specification of the schema is required in order to access the right tables. (this needs to be tested fully and is still buggy)middleware.ts
file has been used to control user redirection and flow on login, rather than by each component, which was confusing and difficult to track. Now that the user redirection on login has been centralized it is much easier to determine where the user is redirected once they login, logout, or retry login.catalog
database.forestgeomeasurementssummary
, which provides a user-friendly view of each measurement and its corresponding data.PoolMonitor
class wrapper. This wrapper provides server-side logging and monitoring of each SQL pool connection as it is made and released to ensure that all connections are correctly released once queries are complete. Additionally, a shell script and cron configuration have been added as part of a new/scripts
folder that, when run, will perform minute-to-minute polling of the local development instance and the live site to log any remaining connections or errors occurring.quadrats
datagrid in order to allow use of a newquadratpersonnel
junction table, which allows assignment of dedicated personnel to a given quadrat.