diff --git a/.travis.yml b/.travis.yml index a8eb85bf6..7b53a7e2e 100644 --- a/.travis.yml +++ b/.travis.yml @@ -20,6 +20,10 @@ script: ./scripts/test_travis.sh $TEST_MODE after_failure: ./scripts/test_travis_failure.sh ${TEST_MODE:-} +env: + global: + - CONFLUENTINC_VERSION=6.1.1 + # use matrix to parallelize tests jobs: fast_finish: true diff --git a/aether-entity-extraction-module/conf/pip/requirements.txt b/aether-entity-extraction-module/conf/pip/requirements.txt index d6a73836f..4d962c9b6 100644 --- a/aether-entity-extraction-module/conf/pip/requirements.txt +++ b/aether-entity-extraction-module/conf/pip/requirements.txt @@ -13,39 +13,43 @@ ################################################################################ aether.python==1.3.0 -attrs==21.2.0 +attrs==21.4.0 avro-python3==1.10.2 certifi==2021.10.8 -charset-normalizer==2.0.7 -coverage==6.0.2 -decorator==5.1.0 +charset-normalizer==2.0.10 +coverage==6.2 +decorator==5.1.1 +Deprecated==1.2.13 eha-jsonpath==0.6.0 -fakeredis==1.6.1 +fakeredis==1.7.0 flake8==4.0.1 flake8-quotes==3.3.1 -gevent==21.8.0 +gevent==21.12.0 greenlet==1.1.2 idna==3.3 +importlib-resources==5.4.0 iniconfig==1.1.1 jsonpath-ng==1.5.3 -jsonschema==4.1.2 +jsonschema==4.4.0 mccabe==0.6.1 -packaging==21.0 +packaging==21.3 pluggy==1.0.0 ply==3.11 -py==1.10.0 +py==1.11.0 pycodestyle==2.8.0 pyflakes==2.4.0 -pyparsing==2.4.7 -pyrsistent==0.18.0 +pyparsing==3.0.7 +pyrsistent==0.18.1 pytest==6.2.5 -redis==3.5.3 -requests==2.26.0 +redis==4.0.2 +requests==2.27.1 six==1.16.0 sortedcontainers==2.4.0 spavro==1.1.24 tblib==1.7.0 toml==0.10.2 -urllib3==1.26.7 +urllib3==1.26.8 +wrapt==1.13.3 +zipp==3.7.0 zope.event==4.5.0 zope.interface==5.4.0 diff --git a/aether-entity-extraction-module/setup.cfg b/aether-entity-extraction-module/setup.cfg index 6d988574e..6a63e797b 100644 --- a/aether-entity-extraction-module/setup.cfg +++ b/aether-entity-extraction-module/setup.cfg @@ -44,6 +44,6 @@ parallel = true disable_warnings = no-data-collected [coverage:report] -fail_under = 90 +fail_under = 75 omit = *tests*, *settings.py show_missing = true diff --git a/aether-kernel/conf/pip/primary-requirements.txt b/aether-kernel/conf/pip/primary-requirements.txt index d8924ffa3..66b7c823f 100644 --- a/aether-kernel/conf/pip/primary-requirements.txt +++ b/aether-kernel/conf/pip/primary-requirements.txt @@ -17,6 +17,7 @@ # Aether Django SDK library with extras aether.sdk[cache,server,storage,test] +django<4 # Aether Python library diff --git a/aether-kernel/conf/pip/requirements.txt b/aether-kernel/conf/pip/requirements.txt index 2261a19d0..3f4b887d1 100644 --- a/aether-kernel/conf/pip/requirements.txt +++ b/aether-kernel/conf/pip/requirements.txt @@ -13,94 +13,99 @@ ################################################################################ aether.python==1.3.0 -aether.sdk==1.4.0 +aether.sdk==1.4.1 asgiref==3.4.1 -attrs==21.2.0 -autopep8==1.5.7 +attrs==21.4.0 +autopep8==1.6.0 avro-python3==1.10.2 -boto3==1.19.1 -botocore==1.22.1 +boto3==1.20.40 +botocore==1.23.40 cachetools==4.2.4 certifi==2021.10.8 -charset-normalizer==2.0.7 -configparser==5.0.2 +charset-normalizer==2.0.10 +configparser==5.2.0 coreapi==2.3.3 coreschema==0.0.4 -coverage==6.0.2 -decorator==5.1.0 -Django==3.2.8 +coverage==6.2 +decorator==5.1.1 +Deprecated==1.2.13 +Django==3.2.11 django-cacheops==6.0 django-cleanup==5.2.0 -django-cors-headers==3.10.0 -django-debug-toolbar==3.2.2 +django-cors-headers==3.11.0 +django-debug-toolbar==3.2.4 django-dynamic-fixture==3.1.2 django-filter==21.1 django-minio-storage==0.3.10 django-model-utils==4.2.0 django-postgrespool2==2.0.1 -django-prometheus==2.1.0 -django-redis==5.0.0 -django-silk==4.1.0 -django-storages==1.12.2 +django-prometheus==2.2.0 +django-redis==5.2.0 +django-silk==4.2.0 +django-storages==1.12.3 django-uwsgi==0.2.2 -djangorestframework==3.12.4 +djangorestframework==3.13.1 drf-dynamic-fields==0.3.1 drf-yasg==1.20.0 eha-jsonpath==0.6.0 et-xmlfile==1.1.0 flake8==4.0.1 flake8-quotes==3.3.1 -funcy==1.16 -google-api-core==2.1.1 -google-auth==2.3.0 -google-cloud-core==2.1.0 -google-cloud-storage==1.42.3 +funcy==1.17 +google-api-core==2.4.0 +google-auth==2.3.3 +google-cloud-core==2.2.2 +google-cloud-storage==2.1.0 google-crc32c==1.3.0 -google-resumable-media==2.0.3 -googleapis-common-protos==1.53.0 +google-resumable-media==2.1.0 +googleapis-common-protos==1.54.0 gprof2dot==2021.2.21 greenlet==1.1.2 idna==3.3 +importlib-metadata==4.10.1 +importlib-resources==5.4.0 inflection==0.5.1 itypes==1.2.0 -Jinja2==3.0.2 +Jinja2==3.0.3 jmespath==0.10.0 jsonpath-ng==1.5.3 -jsonschema==4.1.2 -lxml==4.6.3 -Markdown==3.3.4 +jsonschema==4.4.0 +lxml==4.7.1 +Markdown==3.3.6 MarkupSafe==2.0.1 mccabe==0.6.1 minio==6.0.2 openpyxl==3.0.9 -packaging==21.0 +packaging==21.3 ply==3.11 -prometheus-client==0.11.0 -protobuf==3.19.0 -psycopg2-binary==2.9.1 +prometheus-client==0.12.0 +protobuf==3.19.3 +psycopg2-binary==2.9.3 pyasn1==0.4.8 pyasn1-modules==0.2.8 pycodestyle==2.8.0 pyflakes==2.4.0 -Pygments==2.10.0 -pyparsing==2.4.7 -pyrsistent==0.18.0 +Pygments==2.11.2 +pyparsing==3.0.7 +pyrsistent==0.18.1 python-dateutil==2.8.2 python-json-logger==2.0.2 pytz==2021.3 -redis==3.5.3 -requests==2.26.0 -rsa==4.7.2 -ruamel.yaml==0.17.16 +redis==4.1.1 +requests==2.27.1 +rsa==4.8 +ruamel.yaml==0.17.20 ruamel.yaml.clib==0.2.6 s3transfer==0.5.0 -sentry-sdk==1.4.3 +sentry-sdk==1.5.3 six==1.16.0 spavro==1.1.24 -SQLAlchemy==1.4.26 +SQLAlchemy==1.4.31 sqlparse==0.4.2 tblib==1.7.0 toml==0.10.2 uritemplate==4.1.1 -urllib3==1.26.7 +urllib3==1.26.8 uWSGI==2.0.20 +wrapt==1.13.3 +zipp==3.7.0 diff --git a/aether-odk-module/conf/pip/primary-requirements.txt b/aether-odk-module/conf/pip/primary-requirements.txt index 945a2af16..09e2b0ebd 100644 --- a/aether-odk-module/conf/pip/primary-requirements.txt +++ b/aether-odk-module/conf/pip/primary-requirements.txt @@ -17,7 +17,7 @@ # Aether Django SDK library with extras aether.sdk[cache,server,storage,test] - +django<4 # xForm and data manipulation lxml diff --git a/aether-odk-module/conf/pip/requirements.txt b/aether-odk-module/conf/pip/requirements.txt index 4482e0015..e4fcd2673 100644 --- a/aether-odk-module/conf/pip/requirements.txt +++ b/aether-odk-module/conf/pip/requirements.txt @@ -12,73 +12,79 @@ # ################################################################################ -aether.sdk==1.4.0 +aether.sdk==1.4.1 asgiref==3.4.1 -autopep8==1.5.7 -boto3==1.19.1 -botocore==1.22.1 +autopep8==1.6.0 +boto3==1.20.40 +botocore==1.23.40 cachetools==4.2.4 certifi==2021.10.8 -charset-normalizer==2.0.7 -configparser==5.0.2 -coverage==6.0.2 -Django==3.2.8 +charset-normalizer==2.0.10 +configparser==5.2.0 +coverage==6.2 +Deprecated==1.2.13 +Django==3.2.11 django-cacheops==6.0 django-cleanup==5.2.0 -django-cors-headers==3.10.0 -django-debug-toolbar==3.2.2 +django-cors-headers==3.11.0 +django-debug-toolbar==3.2.4 django-minio-storage==0.3.10 django-postgrespool2==2.0.1 -django-prometheus==2.1.0 -django-redis==5.0.0 -django-silk==4.1.0 -django-storages==1.12.2 +django-prometheus==2.2.0 +django-redis==5.2.0 +django-silk==4.2.0 +django-storages==1.12.3 django-uwsgi==0.2.2 -djangorestframework==3.12.4 +djangorestframework==3.13.1 drf-dynamic-fields==0.3.1 flake8==4.0.1 flake8-quotes==3.3.1 -funcy==1.16 -google-api-core==2.1.1 -google-auth==2.3.0 -google-cloud-core==2.1.0 -google-cloud-storage==1.42.3 +funcy==1.17 +google-api-core==2.4.0 +google-auth==2.3.3 +google-cloud-core==2.2.2 +google-cloud-storage==2.1.0 google-crc32c==1.3.0 -google-resumable-media==2.0.3 -googleapis-common-protos==1.53.0 +google-resumable-media==2.1.0 +googleapis-common-protos==1.54.0 gprof2dot==2021.2.21 greenlet==1.1.2 idna==3.3 -Jinja2==3.0.2 +importlib-metadata==4.10.1 +Jinja2==3.0.3 jmespath==0.10.0 -lxml==4.6.3 -Markdown==3.3.4 +lxml==4.7.1 +Markdown==3.3.6 MarkupSafe==2.0.1 mccabe==0.6.1 minio==6.0.2 -prometheus-client==0.11.0 -protobuf==3.19.0 -psycopg2-binary==2.9.1 +packaging==21.3 +prometheus-client==0.12.0 +protobuf==3.19.3 +psycopg2-binary==2.9.3 pyasn1==0.4.8 pyasn1-modules==0.2.8 pycodestyle==2.8.0 pyflakes==2.4.0 -Pygments==2.10.0 +Pygments==2.11.2 +pyparsing==3.0.7 python-dateutil==2.8.2 python-json-logger==2.0.2 pytz==2021.3 pyxform==1.7.0 -redis==3.5.3 -requests==2.26.0 -rsa==4.7.2 +redis==4.1.1 +requests==2.27.1 +rsa==4.8 s3transfer==0.5.0 -sentry-sdk==1.4.3 +sentry-sdk==1.5.3 six==1.16.0 spavro==1.1.24 -SQLAlchemy==1.4.26 +SQLAlchemy==1.4.31 sqlparse==0.4.2 tblib==1.7.0 toml==0.10.2 -urllib3==1.26.7 +urllib3==1.26.8 uWSGI==2.0.20 +wrapt==1.13.3 xlrd==1.2.0 +zipp==3.7.0 diff --git a/aether-producer/conf/pip/requirements.txt b/aether-producer/conf/pip/requirements.txt index 8616e65dc..806c36b0f 100644 --- a/aether-producer/conf/pip/requirements.txt +++ b/aether-producer/conf/pip/requirements.txt @@ -12,37 +12,37 @@ # ################################################################################ -attrs==21.2.0 +attrs==21.4.0 certifi==2021.10.8 -charset-normalizer==2.0.7 +charset-normalizer==2.0.10 click==8.0.3 -confluent-kafka==1.7.0 +confluent-kafka==1.8.2 flake8==4.0.1 flake8-quotes==3.3.1 Flask==2.0.2 -gevent==21.8.0 +gevent==21.12.0 greenlet==1.1.2 idna==3.3 iniconfig==1.1.1 itsdangerous==2.0.1 -Jinja2==3.0.2 +Jinja2==3.0.3 MarkupSafe==2.0.1 mccabe==0.6.1 -packaging==21.0 +packaging==21.3 pluggy==1.0.0 psycogreen==1.0.2 -psycopg2-binary==2.9.1 -py==1.10.0 +psycopg2-binary==2.9.3 +py==1.11.0 pycodestyle==2.8.0 pyflakes==2.4.0 -pyparsing==2.4.7 +pyparsing==3.0.7 pytest==6.2.5 -requests==2.26.0 +requests==2.27.1 six==1.16.0 spavro==1.1.24 -SQLAlchemy==1.4.26 +SQLAlchemy==1.4.31 toml==0.10.2 -urllib3==1.26.7 +urllib3==1.26.8 Werkzeug==2.0.2 zope.event==4.5.0 zope.interface==5.4.0 diff --git a/aether-ui/aether/ui/assets/Dockerfile b/aether-ui/aether/ui/assets/Dockerfile index d588e3513..7ce8930b2 100644 --- a/aether-ui/aether/ui/assets/Dockerfile +++ b/aether-ui/aether/ui/assets/Dockerfile @@ -1,4 +1,4 @@ -FROM node:lts-alpine +FROM node:14-alpine WORKDIR /code/ ENTRYPOINT ["/code/assets/conf/entrypoint.sh"] diff --git a/aether-ui/aether/ui/assets/css/_pipeline.scss b/aether-ui/aether/ui/assets/css/_pipeline.scss index 725c0ab71..12e04298d 100644 --- a/aether-ui/aether/ui/assets/css/_pipeline.scss +++ b/aether-ui/aether/ui/assets/css/_pipeline.scss @@ -139,18 +139,18 @@ $output-nav-width: 10rem; } &::before { - content: '\f31e'; // fa-expand-arrows-alt + content: "\f31e"; /* fa-expand-arrows-alt */ display: block; } &::after { - content: '\f78c'; // fa-compress-arrows-alt + content: "\f78c"; /* fa-compress-arrows-alt */ display: none; } span { padding: 0 2.3rem; - opacity: 0; + opacity: 0%; transition: opacity 0.2s; } @@ -162,7 +162,7 @@ $output-nav-width: 10rem; } span { - opacity: 1; + opacity: 100%; } } } @@ -170,7 +170,7 @@ $output-nav-width: 10rem; .fullscreen.pipeline { top: 0; - div[class^='pipeline-section--'], + div[class^="pipeline-section--"], .pipeline-output { height: 100vh; } @@ -200,7 +200,7 @@ $output-nav-width: 10rem; transition: width $transition-speed; } -div[class^='pipeline-nav-item--'] { +div[class^="pipeline-nav-item--"] { @include label; color: $action-color-b; @@ -223,7 +223,7 @@ div[class^='pipeline-nav-item--'] { min-width: 1.8rem; height: 1.8rem; padding: 0.4rem 0; - opacity: 0.4; + opacity: 40%; margin: 0 0.8rem; } @@ -231,7 +231,7 @@ div[class^='pipeline-nav-item--'] { .badge { @include bg-gradient; - opacity: 1; + opacity: 100%; } } } @@ -272,7 +272,7 @@ div.pipeline-nav-item--output { overflow-y: auto; } -div[class^='pipeline-section--'], +div[class^="pipeline-section--"], .pipeline-output { width: 0; height: calc(100vh - #{$navbar-height-xs}); @@ -293,7 +293,7 @@ div[class^='pipeline-section--'], } } -// INPUT +/* INPUT */ .pipeline--input { .pipeline-tabs { @@ -326,7 +326,7 @@ div[class^='pipeline-section--'], } } -// ENTITY TYPES +/* ENTITY TYPES */ .pipeline--entities { div.pipeline-nav-item--input { @@ -372,7 +372,7 @@ div[class^='pipeline-section--'], } } -// MAPPING +/* MAPPING */ .pipeline--mapping { div.pipeline-nav-item--input { @@ -427,7 +427,7 @@ div[class^='pipeline-section--'], } } -// OUTPUT +/* OUTPUT */ .show-output { .pipeline-nav-items { diff --git a/aether-ui/aether/ui/assets/css/_pipelines.scss b/aether-ui/aether/ui/assets/css/_pipelines.scss index 408c9d82e..6f713a7ab 100644 --- a/aether-ui/aether/ui/assets/css/_pipelines.scss +++ b/aether-ui/aether/ui/assets/css/_pipelines.scss @@ -25,7 +25,7 @@ min-height: 100vh; &::before { - content: ''; + content: ""; display: block; position: fixed; bottom: -80vw; @@ -39,7 +39,7 @@ } &::after { - content: ''; + content: ""; display: block; position: fixed; bottom: -20vw; @@ -140,8 +140,7 @@ .input-name { word-wrap: break-word; - // 100% - padding - logo size - logo padding - max-width: calc(100% - 1rem - 1rem - 1.8rem); + max-width: calc(100% - 1rem - 1rem - 1.8rem); /* 100% - padding - logo size - logo padding */ line-height: 1.3em; } @@ -283,7 +282,7 @@ .form-label { position: absolute; top: -2rem; - opacity: 0; + opacity: 0%; transition: opacity 0.3s; } @@ -295,18 +294,22 @@ width: 100%; } + /* stylelint-disable property-no-vendor-prefix */ + .text-input:-webkit-autofill { -webkit-animation-name: autofill-dark; -webkit-animation-fill-mode: both; } + /* stylelint-enable property-no-vendor-prefix */ + .text-input::placeholder { color: rgba($white, 0.4); line-height: 1.3em; } .text-input:valid + .form-label { - opacity: 1; + opacity: 100%; } .btn { @@ -332,7 +335,7 @@ .form-label { position: absolute; top: -2rem; - opacity: 0; + opacity: 0%; transition: opacity 0.3s; } @@ -348,7 +351,7 @@ } .text-input:valid + .form-label { - opacity: 1; + opacity: 100%; } .btn { diff --git a/aether-ui/aether/ui/assets/css/_section-entity-types.scss b/aether-ui/aether/ui/assets/css/_section-entity-types.scss index d961b0902..d30292732 100644 --- a/aether-ui/aether/ui/assets/css/_section-entity-types.scss +++ b/aether-ui/aether/ui/assets/css/_section-entity-types.scss @@ -43,7 +43,7 @@ } &::after { - content: ''; + content: ""; display: block; width: 100%; height: 1rem; diff --git a/aether-ui/aether/ui/assets/css/_section-input.scss b/aether-ui/aether/ui/assets/css/_section-input.scss index c6564d141..8cb3f799e 100644 --- a/aether-ui/aether/ui/assets/css/_section-input.scss +++ b/aether-ui/aether/ui/assets/css/_section-input.scss @@ -58,7 +58,7 @@ } &::after { - content: ''; + content: ""; display: block; width: 100%; height: 3rem; @@ -114,7 +114,7 @@ position: relative; &::before { - content: ''; + content: ""; display: inline-block; width: 0; height: 0; @@ -140,7 +140,7 @@ padding-bottom: 0.1rem; } - div[class^='input-schema-mapped'] { + div[class^="input-schema-mapped"] { border-bottom: 1px solid $white; } diff --git a/aether-ui/aether/ui/assets/css/_section-mapping.scss b/aether-ui/aether/ui/assets/css/_section-mapping.scss index 33e2e33c9..d9980078f 100644 --- a/aether-ui/aether/ui/assets/css/_section-mapping.scss +++ b/aether-ui/aether/ui/assets/css/_section-mapping.scss @@ -86,7 +86,7 @@ position: absolute; left: -1.2em; top: 1em; - content: ''; + content: ""; display: block; } } @@ -102,7 +102,7 @@ position: relative; &::before { - content: ''; + content: ""; display: block; width: 24px; height: 24px; diff --git a/aether-ui/aether/ui/assets/css/base/_buttons.scss b/aether-ui/aether/ui/assets/css/base/_buttons.scss index a73896f57..0d7a7ba1c 100644 --- a/aether-ui/aether/ui/assets/css/base/_buttons.scss +++ b/aether-ui/aether/ui/assets/css/base/_buttons.scss @@ -49,7 +49,7 @@ } } -// button on colored background +/* button on colored background */ .btn-c { @include shadow-emboss-color; @@ -75,7 +75,7 @@ @include shadow-flat-white; } -// button on dark background +/* button on dark background */ .btn-d { @include shadow-emboss-dark; @@ -100,7 +100,7 @@ @include shadow-flat-dark; } -// button on white background +/* button on white background */ .btn-w { @include shadow-emboss-white; diff --git a/aether-ui/aether/ui/assets/css/base/_color-codes.scss b/aether-ui/aether/ui/assets/css/base/_color-codes.scss index 49a9af088..7a6e59fc9 100644 --- a/aether-ui/aether/ui/assets/css/base/_color-codes.scss +++ b/aether-ui/aether/ui/assets/css/base/_color-codes.scss @@ -18,9 +18,11 @@ * under the License. */ -// ************************************ -// Color Codes -// ************************************ +/* + ************************************ + * Color Codes + ************************************ + */ $colors-list: ( #6ed7c2 @@ -44,13 +46,13 @@ $colors-list: ( } } - .entity-type-mapped-#{$i} { + .entity-type-mapped-#{$i} { /* eslint-disable-line */ background-color: rgba($current-color, 0.2); position: relative; &::after { border-right: 0.6rem solid rgba($current-color, 0.2); - content: ''; + content: ""; display: block; position: absolute; top: 0; @@ -96,7 +98,7 @@ $colors-list: ( &::before { background-color: rgba($current-color, 0.2); - content: ''; + content: ""; display: block; position: absolute; top: 0; @@ -108,7 +110,7 @@ $colors-list: ( &::after { border-left: 0.6rem solid rgba($current-color, 0.2); - content: ''; + content: ""; display: block; position: absolute; top: 0; diff --git a/aether-ui/aether/ui/assets/css/base/_fonts.scss b/aether-ui/aether/ui/assets/css/base/_fonts.scss index 39e865bbe..7cc46956c 100644 --- a/aether-ui/aether/ui/assets/css/base/_fonts.scss +++ b/aether-ui/aether/ui/assets/css/base/_fonts.scss @@ -19,9 +19,9 @@ */ /* Google Fonts */ -@import url('https://fonts.googleapis.com/css?family=Open+Sans:300,400,400i,600'); -@import url('https://fonts.googleapis.com/css?family=Fira+Mono'); +@import url("https://fonts.googleapis.com/css?family=Open+Sans:300,400,400i,600"); +@import url("https://fonts.googleapis.com/css?family=Fira+Mono"); /* Font Awesome 5 https://fontawesome.com/ */ -@import url('https://use.fontawesome.com/releases/v5.15.4/css/fontawesome.css'); -@import url('https://use.fontawesome.com/releases/v5.15.4/css/solid.css'); +@import url("https://use.fontawesome.com/releases/v5.15.4/css/fontawesome.css"); +@import url("https://use.fontawesome.com/releases/v5.15.4/css/solid.css"); diff --git a/aether-ui/aether/ui/assets/css/base/_global.scss b/aether-ui/aether/ui/assets/css/base/_global.scss index 8ba37643a..e3bc0a188 100644 --- a/aether-ui/aether/ui/assets/css/base/_global.scss +++ b/aether-ui/aether/ui/assets/css/base/_global.scss @@ -121,8 +121,8 @@ small { font-size: $font-size-l; } -input[type='password'], -input[type='text'], +input[type="password"], +input[type="text"], textarea { @include shadow-cutout-white; @@ -178,6 +178,8 @@ textarea:active { outline: 0; } +/* stylelint-disable property-no-vendor-prefix */ + input:-webkit-autofill, textarea:-webkit-autofill, select:-webkit-autofill { @@ -185,6 +187,8 @@ select:-webkit-autofill { -webkit-animation-fill-mode: both; } +/* stylelint-enable property-no-vendor-prefix */ + .textarea-header { @include shadow-cutout-white; @@ -212,7 +216,7 @@ select:-webkit-autofill { top: 120%; &::before { - content: ''; + content: ""; display: block; width: 12px; height: 12px; @@ -289,7 +293,7 @@ select:-webkit-autofill { border-radius: 50%; width: 0.5em; height: 0.5em; - content: ''; + content: ""; display: inline-block; margin-left: 0.5em; } @@ -339,7 +343,7 @@ code { padding-left: 2.4rem; &::before { - content: ''; + content: ""; display: block; position: absolute; left: 0; @@ -352,7 +356,7 @@ code { } &::after { - content: ''; + content: ""; display: block; position: absolute; top: 4px; @@ -397,7 +401,7 @@ code { line-height: 1.3em; &::before { - content: '\f00c'; + content: "\f00c"; font-family: $icon-font; font-weight: 900; font-size: 10px; @@ -444,7 +448,7 @@ code { padding-left: 1.6rem; &::before { - content: ''; + content: ""; display: block; width: 0.8rem; height: 1rem; diff --git a/aether-ui/aether/ui/assets/css/base/_keyframes.scss b/aether-ui/aether/ui/assets/css/base/_keyframes.scss index ea1b9f566..d7dbf6858 100644 --- a/aether-ui/aether/ui/assets/css/base/_keyframes.scss +++ b/aether-ui/aether/ui/assets/css/base/_keyframes.scss @@ -18,33 +18,35 @@ * under the License. */ -// stylelint-disable block-opening-brace-space-before +/* stylelint-disable block-opening-brace-space-before */ @keyframes fade-in { - 0% { opacity: 0; } - 100% { opacity: 1; } + 0% { opacity: 0%; } + 100% { opacity: 100%; } } @keyframes show { - 0% { opacity: 0; } - 50% { opacity: 0; } - 100% { opacity: 1; } + 0% { opacity: 0%; } + 50% { opacity: 0%; } + 100% { opacity: 100%; } } @keyframes show-form { 0% { max-height: 0; padding: 0; - opacity: 0; + opacity: 0%; } 100% { max-height: 200px; padding: 2rem 0 3rem; - opacity: 1; + opacity: 100%; } } +/* stylelint-disable at-rule-no-vendor-prefix */ + @keyframes slide-up { 0% { top: 100vh; } 100% { top: $navbar-height-xs; } @@ -64,4 +66,6 @@ } } -// stylelint-enable block-opening-brace-space-before +/* stylelint-enable at-rule-no-vendor-prefix */ + +/* stylelint-enable block-opening-brace-space-before */ diff --git a/aether-ui/aether/ui/assets/css/base/_loading-spinner.scss b/aether-ui/aether/ui/assets/css/base/_loading-spinner.scss index fce2547ac..748253514 100644 --- a/aether-ui/aether/ui/assets/css/base/_loading-spinner.scss +++ b/aether-ui/aether/ui/assets/css/base/_loading-spinner.scss @@ -35,10 +35,10 @@ $duration: 1.8s; declaration-block-single-line-max-declarations */ @keyframes dot { - 0% { opacity: 0; top: 20px; background: $purple; } - 10% { opacity: 1; } - 30% { opacity: 1; top: 5px; background: $action-color; } - 100% { opacity: 0; top: 5px; background: $action-color; } + 0% { opacity: 0%; top: 20px; background: $purple; } + 10% { opacity: 100%; } + 30% { opacity: 100%; top: 5px; background: $action-color; } + 100% { opacity: 0%; top: 5px; background: $action-color; } } /* stylelint-enable block-opening-brace-space-before, @@ -58,7 +58,7 @@ $duration: 1.8s; left: calc(50vw - 50px); &::before { - content: ''; + content: ""; display: block; position: absolute; border-radius: 100%; @@ -67,7 +67,7 @@ $duration: 1.8s; height: 16px; left: 22px; top: 22px; - opacity: 0; + opacity: 0%; animation: dot $duration infinite; } } diff --git a/aether-ui/aether/ui/assets/css/base/_mixins.scss b/aether-ui/aether/ui/assets/css/base/_mixins.scss index fbcfbed85..32049c81a 100644 --- a/aether-ui/aether/ui/assets/css/base/_mixins.scss +++ b/aether-ui/aether/ui/assets/css/base/_mixins.scss @@ -101,13 +101,13 @@ 0 0 4px rgba($text-color, 0.1); } -// STATES +/* STATES */ @mixin selected { .badge { @include bg-gradient; - opacity: 1; + opacity: 100%; .fa-caret-right { transform: rotate(90deg); diff --git a/aether-ui/aether/ui/assets/css/base/_modal.scss b/aether-ui/aether/ui/assets/css/base/_modal.scss index 3f65e1580..f840a0046 100644 --- a/aether-ui/aether/ui/assets/css/base/_modal.scss +++ b/aether-ui/aether/ui/assets/css/base/_modal.scss @@ -62,7 +62,7 @@ color: $red; &::before { - content: '\f06a'; // fa-exclamation-circle + content: "\f06a"; /* fa-exclamation-circle */ font: 1rem $icon-font; margin-right: 0.3rem; } @@ -72,7 +72,7 @@ color: $orange; &::before { - content: '\f071'; // fa-exclamation-triangle + content: "\f071"; /* fa-exclamation-triangle */ font: 1rem $icon-font; margin-right: 0.3rem; } @@ -82,7 +82,7 @@ color: $green; &::before { - content: '\f058'; // fa-check-circle + content: "\f058"; /* fa-check-circle */ font: 1rem $icon-font; margin-right: 0.3rem; } diff --git a/aether-ui/aether/ui/assets/css/base/_nav-bar.scss b/aether-ui/aether/ui/assets/css/base/_nav-bar.scss index 0c8c3e4c0..4c0612552 100644 --- a/aether-ui/aether/ui/assets/css/base/_nav-bar.scss +++ b/aether-ui/aether/ui/assets/css/base/_nav-bar.scss @@ -102,7 +102,7 @@ .breadcrumb-links a, .top-nav-logo, .status-publish { - opacity: 1; + opacity: 100%; max-width: 100px; } } @@ -119,7 +119,7 @@ } .breadcrumb-links a { - opacity: 0; + opacity: 0%; max-width: 0; } @@ -130,7 +130,7 @@ .pipeline--input { .breadcrumb-links a { - opacity: 1; + opacity: 100%; max-width: 100px; } } diff --git a/aether-ui/aether/ui/assets/css/base/_settings.scss b/aether-ui/aether/ui/assets/css/base/_settings.scss index b356c873a..d550c60cf 100644 --- a/aether-ui/aether/ui/assets/css/base/_settings.scss +++ b/aether-ui/aether/ui/assets/css/base/_settings.scss @@ -18,9 +18,11 @@ * under the License. */ -// ************************************ -// Colors -// ************************************ +/* + ************************************ + * Color Codes + ************************************ + */ $white: #fff; $black: #000; @@ -45,13 +47,15 @@ $action-color: #0093ff; $action-color-b: #50aef3; $hover-color: $purple; -// ************************************ -// Fonts -// ************************************ +/* + ************************************ + * Fonts + ************************************ + */ -$body-font-family: 'Open Sans', arial, sans-serif; -$code-font-family: 'Fira Mono', sfmono-regular, menlo, monaco, monospace; -$icon-font: 'Font Awesome 5 Free'; +$body-font-family: "Open Sans", arial, sans-serif; +$code-font-family: "Fira Mono", sfmono-regular, menlo, monaco, monospace; +$icon-font: "Font Awesome 5 Free"; $font-size-xxs: 0.7rem; $font-size-xs: 0.86rem; @@ -62,9 +66,11 @@ $font-size-l: 1.6rem; $font-size-xl: 2rem; $font-size-xxl: 3.2rem; -// ************************************ -// Sizes -// ************************************ +/* + ************************************ + * Sizes + ************************************ + */ $unit: 1.2rem; $unit-xl: 2rem; diff --git a/aether-ui/aether/ui/assets/css/base/_styleguide.scss b/aether-ui/aether/ui/assets/css/base/_styleguide.scss index 24214dea0..d01e83b56 100644 --- a/aether-ui/aether/ui/assets/css/base/_styleguide.scss +++ b/aether-ui/aether/ui/assets/css/base/_styleguide.scss @@ -102,7 +102,7 @@ $colors: ( } @each $name, $size in $font-sizes { - .font-sample-#{$name} { + .font-sample-#{$name} { /* eslint-disable-line */ font-size: $size; line-height: $size; margin-bottom: 2rem; @@ -128,7 +128,7 @@ $colors: ( } &::after { - content: '#{$current-color}'; + content: "#{$current-color}"; } } } diff --git a/aether-ui/aether/ui/assets/css/index.scss b/aether-ui/aether/ui/assets/css/index.scss index 83b9929bc..cbc3bf9fb 100644 --- a/aether-ui/aether/ui/assets/css/index.scss +++ b/aether-ui/aether/ui/assets/css/index.scss @@ -18,36 +18,48 @@ * under the License. */ -// ************************************ -// third-party styles -// ************************************ - -@import '~bootstrap/scss/bootstrap'; - -// ************************************ -// custom styles -// ************************************ - -@import 'base/fonts'; -@import 'base/settings'; -@import 'base/color-codes'; -@import 'base/keyframes'; -@import 'base/mixins'; -@import 'base/global'; -// -@import 'base/buttons'; -@import 'base/nav-bar'; -@import 'base/loading-spinner'; -@import 'base/modal'; -@import 'base/messages'; -// -@import 'pipelines'; -@import 'pipeline'; -@import 'pipeline-settings'; -// -@import 'section-input'; -@import 'section-entity-types'; -@import 'section-mapping'; -@import 'section-output'; -// -@import 'base/styleguide'; +/* + ************************************ + * third-party styles + ************************************ + */ + +@import "~bootstrap/scss/bootstrap"; + +/* + ************************************ + * custom styles + ************************************ + */ + +@import "base/fonts"; +@import "base/settings"; +@import "base/color-codes"; +@import "base/keyframes"; +@import "base/mixins"; +@import "base/global"; + +/* ************************************ */ + +@import "base/buttons"; +@import "base/nav-bar"; +@import "base/loading-spinner"; +@import "base/modal"; +@import "base/messages"; + +/* ************************************ */ + +@import "pipelines"; +@import "pipeline"; +@import "pipeline-settings"; + +/* ************************************ */ + +@import "section-input"; +@import "section-entity-types"; +@import "section-mapping"; +@import "section-output"; + +/* ************************************ */ + +@import "base/styleguide"; diff --git a/aether-ui/aether/ui/assets/package.json b/aether-ui/aether/ui/assets/package.json index 6a1dc955d..f0e03159e 100644 --- a/aether-ui/aether/ui/assets/package.json +++ b/aether-ui/aether/ui/assets/package.json @@ -20,37 +20,36 @@ "start": "node ./conf/webpack.server.js" }, "dependencies": { - "@popperjs/core": "~2.10.0", + "@popperjs/core": "~2.11.0", "avsc": "~5.7.0", "bootstrap": "~5.1.0", "moment": "~2.29.0", "react": "~16.14.0", "react-clipboard.js": "~2.0.16", "react-dom": "~16.14.0", - "react-intl": "~5.20.0", + "react-intl": "~5.24.0", "react-outside-click-handler": "~1.3.0", "react-redux": "~7.2.0", "react-router-dom": "~5.3.0", "redux": "~4.1.0", - "redux-thunk": "~2.3.0", + "redux-thunk": "~2.4.0", "uuid": "~8.3.0", "webpack-google-cloud-storage-plugin": "~0.9.0", "webpack-s3-plugin": "~1.0.3", "whatwg-fetch": "~3.6.0" }, "devDependencies": { - "@babel/core": "~7.15.0", - "@babel/plugin-proposal-class-properties": "~7.14.0", - "@babel/preset-env": "~7.15.0", - "@babel/preset-react": "~7.14.0", + "@babel/core": "~7.16.0", + "@babel/plugin-proposal-class-properties": "~7.16.0", + "@babel/preset-env": "~7.16.0", + "@babel/preset-react": "~7.16.0", "@hot-loader/react-dom": "~16.14.0", "babel-loader": "~8.2.0", "css-loader": "~5.2.0", - "eslint": "~7.32.0", "enzyme": "~3.11.0", "enzyme-adapter-react-16": "~1.15.0", "express": "~4.17.0", - "jest": "~27.2.0", + "jest": "~27.4.0", "mini-css-extract-plugin": "~1.6.0", "nock": "~12.0.0", "node-fetch": "~2.6.0", diff --git a/aether-ui/conf/pip/primary-requirements.txt b/aether-ui/conf/pip/primary-requirements.txt index 47e9aa07f..27e91626d 100644 --- a/aether-ui/conf/pip/primary-requirements.txt +++ b/aether-ui/conf/pip/primary-requirements.txt @@ -17,6 +17,7 @@ # Aether Django SDK library with extras aether.sdk[cache,server,webpack,storage,test] +django<4 # Django specific diff --git a/aether-ui/conf/pip/requirements.txt b/aether-ui/conf/pip/requirements.txt index f599c74bd..7ad994afb 100644 --- a/aether-ui/conf/pip/requirements.txt +++ b/aether-ui/conf/pip/requirements.txt @@ -12,71 +12,77 @@ # ################################################################################ -aether.sdk==1.4.0 +aether.sdk==1.4.1 asgiref==3.4.1 -autopep8==1.5.7 -boto3==1.19.1 -botocore==1.22.1 +autopep8==1.6.0 +boto3==1.20.40 +botocore==1.23.40 cachetools==4.2.4 certifi==2021.10.8 -charset-normalizer==2.0.7 -configparser==5.0.2 -coverage==6.0.2 -Django==3.2.8 +charset-normalizer==2.0.10 +configparser==5.2.0 +coverage==6.2 +Deprecated==1.2.13 +Django==3.2.11 django-cacheops==6.0 django-cleanup==5.2.0 -django-cors-headers==3.10.0 -django-debug-toolbar==3.2.2 +django-cors-headers==3.11.0 +django-debug-toolbar==3.2.4 django-minio-storage==0.3.10 django-model-utils==4.2.0 django-postgrespool2==2.0.1 -django-prometheus==2.1.0 -django-redis==5.0.0 -django-silk==4.1.0 -django-storages==1.12.2 +django-prometheus==2.2.0 +django-redis==5.2.0 +django-silk==4.2.0 +django-storages==1.12.3 django-uwsgi==0.2.2 django-webpack-loader==1.4.1 -djangorestframework==3.12.4 +djangorestframework==3.13.1 drf-dynamic-fields==0.3.1 flake8==4.0.1 flake8-quotes==3.3.1 -funcy==1.16 -google-api-core==2.1.1 -google-auth==2.3.0 -google-cloud-core==2.1.0 -google-cloud-storage==1.42.3 +funcy==1.17 +google-api-core==2.4.0 +google-auth==2.3.3 +google-cloud-core==2.2.2 +google-cloud-storage==2.1.0 google-crc32c==1.3.0 -google-resumable-media==2.0.3 -googleapis-common-protos==1.53.0 +google-resumable-media==2.1.0 +googleapis-common-protos==1.54.0 gprof2dot==2021.2.21 greenlet==1.1.2 idna==3.3 -Jinja2==3.0.2 +importlib-metadata==4.10.1 +Jinja2==3.0.3 jmespath==0.10.0 -Markdown==3.3.4 +Markdown==3.3.6 MarkupSafe==2.0.1 mccabe==0.6.1 minio==6.0.2 -prometheus-client==0.11.0 -protobuf==3.19.0 -psycopg2-binary==2.9.1 +packaging==21.3 +prometheus-client==0.12.0 +protobuf==3.19.3 +psycopg2-binary==2.9.3 pyasn1==0.4.8 pyasn1-modules==0.2.8 pycodestyle==2.8.0 pyflakes==2.4.0 -Pygments==2.10.0 +Pygments==2.11.2 +pyparsing==3.0.7 python-dateutil==2.8.2 python-json-logger==2.0.2 pytz==2021.3 -redis==3.5.3 -requests==2.26.0 -rsa==4.7.2 +redis==4.1.1 +requests==2.27.1 +rsa==4.8 s3transfer==0.5.0 -sentry-sdk==1.4.3 +sentry-sdk==1.5.3 six==1.16.0 -SQLAlchemy==1.4.26 +SQLAlchemy==1.4.31 sqlparse==0.4.2 tblib==1.7.0 toml==0.10.2 -urllib3==1.26.7 +urllib3==1.26.8 uWSGI==2.0.20 +wrapt==1.13.3 +zipp==3.7.0 diff --git a/scripts/deployment/ui.Dockerfile b/scripts/deployment/ui.Dockerfile index 2b0e8b583..95fc1049f 100644 --- a/scripts/deployment/ui.Dockerfile +++ b/scripts/deployment/ui.Dockerfile @@ -14,7 +14,7 @@ RUN /tmp/setup_revision.sh ## using node image to build react app ################################################################################ -FROM node:lts-alpine AS app_node +FROM node:14-alpine AS app_node ## set up container WORKDIR /assets/