Snovault Hybrid Object Relational Database Framework
Project description
SnoVault JSON-LD Database Framework
System Installation (OSX Big Sur(testing), Catlina(10.15.x), Mojave(10.14.6))
- Command line tools
xcode-select --install
brew: https://brew.sh/ . Make sure git is installed
- Python3
3.6.9, 3.7.6, and 3.7.10 have been tested 3.8 does not work as of Feb 2020
- Postgres@11 (Postgres@9.3 also works)
brew install postgresql@11 # May need to add postgres to PATH in your shell profile, e.g. ~/.bash_profile, ~/.zshrc # echo 'export PATH="/usr/local/opt/postgresql@11/bin:$PATH"' >> YOUR_SHELL_PROFILE
- Node 10.x.x
Node 12 is known to work as well.
brew install node@10
You may need to link node/npm with brew link node@10 then add it to your PATH
- Ruby - Non system version to install compass while avoiding permission errors
brew install ruby # May need to add ruby to your bash_profile/zshrc and restart terminal
- Compass
gem install compass # Test the install compass -v # If the command is not found then find your ruby bin directory ls /usr/local/lib/ruby/gem/ # If you have two versions use the active one ruby -v # Using the correct ruby version bin diretory, make a sym link ln -s /usr/local/lib/ruby/gems/2.6.0/bin/compass /usr/local/opt/ruby/bin/compass
- Java 11
brew install openjdk@11 # Add to your PATH in terminal profile, i.e. ~/.bash_profile or ~/.zshrc export JAVA_HOME=$(/usr/libexec/java_home -v 1.8)
- Elasticsearch 5.x
# Download tar: https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-5.6.0.tar.gz # Decompress tar -xvf ~/Downloads/elasticsearch-5.6.0.tar.gz -C /usr/local/opt/ # Add to PATH in your terminal profile, i.e. ~/.bash_profile or ~/.zshrc export PATH="/usr/local/opt/elasticsearch-5.6.0/bin:$PATH" # Restart terminal and check versions elasticsearch -V
- Brew dependencies
brew install libmagic nginx graphviz redis
Chrome driver for Testing
Chromedriver is needed in your PATH. If working in a python virtual environment, then the chromedriver can be added to your-venv-dir/bin directory.
You also need to install Chrome (if not already installed). In addition, allow chromedriver (System Preferences->Security & Privacy) to run to run bdd tests
Application Installation
- Create a virtual env in your work directory. Here we use python3 venv module. Use venv, like conda, if you please
cd your-work-dir python3 -m venv snovault-venv source snovault-venv/bin/activate pip install -U pip==21.0.1
- Clone the repo and install requirements
cd snovault pip install -e '.[dev]'
- If psycopg2 fails to compile, you may need to set LDFLAGS to the output of pg_config --ldflags before pip installation.
LDFLAGS=$(pg_config --ldflags) pip install -e '.[dev]'
If you have errors at runtime that look like this:
ImportError: dlopen(/Users/foo/venv/lib/python3.7/site-packages/psycopg2/_psycopg.cpython-37m-darwin.so, 2): Symbol not found: _PQencryptPasswordConn Referenced from: /Users/foo/venv/lib/python3.7/site-packages/psycopg2/_psycopg.cpython-37m-darwin.so Expected in: /usr/lib/libpq.5.dylib in /Users/foo/venv/lib/python3.7/site-packages/psycopg2/_psycopg.cpython-37m-darwin.so
you may need to add the brew-installed Postgres headers, usually -L/usr/local/opt/postgresql@11/lib, to the LDFLAGS in addition to the ones given by pg_config --ldflags.
- Build Application
# Make sure you are in the snovault-venv make clean && buildout
- Run Application
# Make sure you are in the snovault-venv dev-servers development.ini --app-name app --clear --init --load # In a separate terminal, make sure you are in the snovault-venv pserve development.ini
Browse to the interface at http://localhost:6543
- Run Tests
no argument runs non bdd tests
# Make sure you are in the snovault-venv ./circle-tests.sh bdd ./circle-tests.sh npm ./circle-tests.sh
Changes
Snovault 1.0.57 (released) encoded v116.0
revert SNO-202-python3.8.5-upgrade (#338)
SNO-201-add-search-config-registry (#336)
SNO-202-python3.8.5-upgrade (#335)
Snovault 1.0.56 (released) encoded v115.0
SNO-200-remove-nonsubstring-filter-from-mapping (#332)
SNO-199-allow-customization-of-search-fields (#333)
SNO-197-add-range-queries-and-min-max-aggs (#329)
SNO-198-allow-configuration-of-reserved-search-params (#330)
SNO-138-fix-pytest-warnings (#324)
SNO-182-readme-update (#323)
Snovault 1.0.55 (released) encoded v114.0
SNO-192-update-pip-install (#321)
Snovault 1.0.54 (released) encoded v113.0
SNO-27-pip-installable (#316)
SNO-191-pyramid-env-vars (#318)
SNO-117-search-as-you-type (#220)
Snovault 1.0.53 (released) encoded v112.0
SNO-158-create-minimally-indexed-deploy
SNO-190-pin-setuptools-in-circle-ci (#315)
Snovault 1.0.52 (released) encoded v111.0
SNO-185-Log-connection-error (#311)
SNO-183-allow-specification-of-cart-in-search (#310)
SNO-181-Update-install-readme (#309)
Snovault 1.0.51 (released) encoded v109.0
SNO-174-add-local-storage-redis (#299)
SNO-176-invalidate-object-when-unlinked (#303)
SNO-177-add-view-with-specified-fields (#300)
SNO-178-fix-indexer-test (#304)
Snovault 1.0.50 (released) encoded v108.0
SNO-168-stream-heterogeneous-uuids (#292)
SNO-169 Creating a command for admin user creation (#293)
Snovault 1.0.49 (released) encoded v106.0
SNO-166-update-query-string (#288)
Snovault 1.0.48 (released) encoded v105.0
SNO-163-install-graphviz (#285)
Snovault 1.0.47 (released) encoded v104.0
SNO-159-allow-remote-indexing (#282)
Snovault 1.0.46 (released) encoded v103.0 (unreleased)
SNO-160-use-boolean-values-in-facets (#280)
SNO-116 Use summary_matrix instead of summary (#278)
SNO-157-make-facets-collapsable (#275)
Snovault 1.0.45 (released) encoded v102.0
SNO-154-fix-magic-json-bug (#272)
SNO-156 Use pyramid_retry 2.1.1 (#273)
SNO-137-add-search-doc (#267)
SNO-152 fix circle-ci browser install (#269)
Snovault 1.0.44 (released) encoded v99.0
SNO-150 Remove duplicates and fix antlr version (#266)
SNO-149-allow-specification-of-audit-field (#265)
SNO-143-update-and-switch-readme
SNO-148-uuid-indexing-times-new-line-bit
SNO-144-redirect-downloads-through-nginx-or-apache (#192)
Snovault 1.0.43 (released) encoded v98.0
SNO-146-clean-up-threadmanager-on-pyramid-retry-exception (#261)
Snovault 1.0.42 (released) encoded v97.0
SNO-145-handle-missing-obj-on-request (#258)
Snovault 1.0.41 (released) encoded v97rc
SNO-142 Minor fixes for ubutnu 18 on v96x1rc1 (#252)
SNO-141-update-osx-catalina-readme (#252)
SNO-140 Allow shorting uuids with flag (#249)
SNO-139 Log detailed initial indexing times (#249)
SNO-135 Update installation for osx catalina (#249)
SNO-132 Update to py37 lrowe pr with fixes (#249)
Snovault 1.0.40 (released) encoded v95.0
SNO-129-add-fielded-generator-response (#244)
SNO-128-make-select-calculated-properties-view (#245)
SNO-133-setuptools-test-failure (#247)
Snovault 1.0.39 (released) encoded v94.0
SNO-126-allow-default-value-for-missing-aggregation-field (#242)
Snovault 1.0.38 (released) encoded v93.0
SNO-125-switch-batch-download-to-query-string (#238)
SNO-118-simple-query-string (#240)
SNO-123-limit-es-scan (#237)
SNO-121-fix-circleci-apt-install (#224)
Snovault 1.0.37 (released) encoded v92.0
SNO-119-escape-regex-slash (#221)
[HOTFIX] SNO-120-stream-large-json (#222)
SNO-115-delete-old-search-code (#219)
Snovault 1.0.36 (released) encoded v91.0
SNO-112-fix-npm-audit-issues (#216)
SNO-113-make-audit-view (#217)
Snovault 1.0.35 (UNRELEASED) encoded
SNO-95-refactor-search (#214)
Snovault 1.0.34 (released) encoded v88.0
SNO-108-improve-search-new (#212)
SNO-105-fix-batchupgrade-tests-sno103 (#211)
SNO-106-fix-spec-char-500-error (#209)
Snovault 1.0.33 (released) encoded v87.0
SNO-103 fix-batch-upgrade-error-logging (#206)
SNO-102 use-openjdk-java-for-circleci (#205)
Snovault 1.0.32 (released) encoded v87rc1
SNO-99 port travis tests to circleci (#202)
SNO-100 Parallelize batchupgrade script (#201)
SNO-92 Fix batch upgrade logging (#201)
SNO-101 Refactor batchupgrade (#201)
Snovault 1.0.31 (released) encoded v86.0
SNO-98 Update sauce connect to 4.5.3 (#199)
SNO-93 user-count-does-not-match (#191)
SNO-90 added-advancedQuery (#183)
Snovault 1.0.30 (released) encoded v85x2
SNO-96 fix indexing tests (#196)
Snovault 1.0.29 (released) encoded v85rc1
SNO-91 update-travis-java-ref (#188)
SNO-87 fixed-issue-while-profile-url-does-not-work (#179)
SNO-86 escape-search-text (#178)
SNO-88 fix-user-search-count (#180)
Snovault 1.0.28 (released) encoded v84rc1
SNO-89 Fix backoff error key in indexer (#181)
SNO-85 facet-reappearing (#175)
Snovault 1.0.27 (released) encoded v83.0
SNO-83 Rotate img attachment for EXIF (#174)
Snovault 1.0.26 (released) encoded v82.0
SNO-78 add long facet type (#168)
SNO-80 typeahead for facets (#168)
SNO-73 Add uuid queue module (#162)
Snovault 1.0.25 (released) encoded v81.0
SNO-77 Add review to submit_for validation (#166)
Snovault 1.0.24 (released) encoded v80.0
SNO-75-fix-linux-travis-option (#163)
Snovault 1.0.23 (released) encoded v79.0 also
SNO-72 Update simple for uuid module (#158)
Snovault 1.0.22 (released) encoded v79.0 also
SNO-68 Stop using _all for indexing (#155)
SNO-74 Remove npm shrinkwrap json (#157)
Snovault 1.0.21 (released) encoded v78.0 also
SNO-65 Refactor indexer uuids as server client (#151)
Snovault 1.0.20 (released) encoded v78.0
SNO-63 Update pip requests and remove wal-e reqs (#150)
SNO-66 Add new endpoint to map schema to schema titles (#152)
Snovault 1.0.19 (released) encoded v77.0
SNO-60-check-report-res-has-view (#147)
SNO-50 Initial shopping cart (#142)
SNO-59-fix-index-logger-name (#137)
SNO-53 Add index flags to indexers (#137)
Snovault 1.0.18 (released) encoded v76.0
SNO-49 Change audit inherit default (#132)
SNO-31 Refactor search related views (#141) (#143)
1.0.17 1. [HOTFIX] SNO-54-fix-schema-copy-line (#136)
1.0.16 1. SNO-52-alter-select-distinct-values (#131)
1.0.15 1. SNO-48-add-embed-cache-to-ini (#127)
1.0.14 1. SNO-45 Increase embed_capacity (#123)
1.0.13 1. SNO-46 Remove unused search type arg (#122) 2. SNO-43 Clean up snovault startup (#116)
1.0.12 1. SNO-42 Check call count explicitly (#118)
1.0.11 01. SNO-41-put-validator-accession (#112)
1.0.10 01. SNO-35 fix bug in get_rev_links(#111) 02. SNO-40 Upgrade blob storage to boto3 (#110)
1.0.9: 01. SNO-38 Return lists from get_related_uuids (#108, #105)
1.0.8: Released with 1.0.9 01. SNO-36-update-buildout (#104) 02. SNO-34-nginx-dev-proxy-headers (#103)
1.0.7: The only update was reverted. Empty Release.
1.0.6: 01. SNO-33 specify index for get_by_unique_key from collection (#94) 02. SNO-28 limit ES storage to indices created for snovault resources (#93)
1.0.5: 01. SNO-30 Split Indexer State from indexer file and update 02. SNO-10 Remove audit indexing via 2-pass 03. SNO-9 Add api end points to new indexer meta objects 04. SNO-25 Make uniqueItems to check the serialized values (#85) 05. SNO-26 Add schemas map view to profiles (#86) 06. SNO-29 Limit audits on form update (#87) 07. SNO-19 Update DOI preferred resolver url (#80)
1.0.4: -SNO-15 Add index to storage propertysheet -SNO-14 Update delete script
1.0.3: -SNO-8 Add JSONSchemas type to profiles page (#73)
1.0.2: * Issues discovered while release of ENCD v65 part 2
-SNO-12: Set max clause parameter in es indexer search #75 -SNO-11: Add timeout to ES indexer search query #74
1.0.1: * Issues discovered while release of ENCD v65
-SNO-6: Fix index query too many clauses failure -SNO-5: Update psycopg to match encoded version 2.7.3
1.0.0:
31 delete
ES5 Fix: Update index settings shard number
0.33:
ES5 Update: ENCD-2488 ES5 Update aka RM3910
Fix travis build: Pre Install setuptools with pip for travis like ENCD-3722
0.32:
Update to ENCD-3669 to not include notSubmittable reverse links in the edit view of an object.
0.31:
ENCD-3684 Specify https index to fix buildout, update changelog.
Use notSubmittable instead of calculatedProperty to indicate properties that may not be submitted. Related to ENCD-3669.
0.30:
Document dependency on java 8.
Disable 2nd indexing pass.
0.29:
Fix recording indexing errors.
Add some documentation about indexing.
0.28:
Add support for adding and updating child objects specified as abstract types in the schema.
Split indexing into 2 phases.
0.27:
Move embed cache to connection and increase size.
Fix reporting upgrade errors when error path includes an integer.
0.26:
Indexer: Limit workers to 1 task and scale chunk size based on number of items being indexed.
0.25:
Indexer: Limit workers to 4 tasks to avoid out-of-memory errors.
0.24:
If the schema specifies an explicit mapping, use it when building the elasticsearch mapping. This provides an escape valve for edge cases (such as not indexing the layout structure of a page).
upgrade to sauceconnect v4.4.4
add port_range to wsgi_tests (mrmin)
0.23: - replace copy.deepcopy() for faster indexing
0.22: - New version of image magic, fix sauce labs
0.21: - (pypi errors, identical to 0.22)
0.20: - Patch mpindexer for better error messages
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.