Repo to support the Ecommerce workshop(s).

Overview

๐Ÿ”ฅ Building an E-commerce Website ๐Ÿ”ฅ

Gitpod ready-to-code License Apache2 Discord

Materials for the Session

It doesn't matter if you join our workshop live or you prefer to do at your own pace, we have you covered. In this repository, you'll find everything you need for this workshop:

If you cannot attend this workshop live, recordings of this workshop and many more is available on Youtube.

๐Ÿ“‹ Table of contents

  1. Introduction
  2. Create your Database
  3. Create your schema
  4. Populate the dataset
  5. Create a token
  6. Setup your application
  7. Run Unit Tests
  8. Start the Backend API
  9. Start the Application

1. Introduction

Are you building or do you support an e-commerce website? If so, then this content is for you!

Digital sales in 2020 eclipsed four trillion dollars (USD). Businesses that want to compete, need a high performing e-commerce website. Here we will demonstrate how to build a high performing persistence layer with DataStax ASTRA DB.

Why does an e-commerce site need to be fast? Because most consumers will leave a web page or a mobile app if it takes longer than a few seconds to load. In the content below, we will cover how to build high-performing data models and services, helping you to build a e-commerce site with high throughput and low latency.

2. Create Astra DB Instance

ASTRA DB is the simplest way to run Cassandra with zero operations - just push the button and get your cluster. No credit card required, $25.00 USD credit every month, roughly 20M read/write operations, 80GB storage monthly - sufficient to run small production workloads.

โœ… 2a. Register

If you do not have an account yet, register and sign in to Astra DB: This is FREE and NO CREDIT CARD is required. https://astra.datastax.com: You can use your Github, Google accounts or register with an email.

Make sure to chose a password with minimum 8 characters, containing upper and lowercase letters, at least one number and special character

โœ… 2b. Create a "FREE" plan

Follow this guide, to set up a pay as you go database with a free $25 monthly credit. You will find below recommended values to enter:

  • For the database name - demos

  • For the keyspace name - ecommerce

You can technically use whatever you want and update the code to reflect the keyspace. This is really to get you on a happy path for the first run.

  • For provider and region: Choose a provider (GCP, Azure or AWS) and then the related region is where your database will reside physically (choose one close to you or your users).

  • Create the database. Review all the fields to make sure they are as shown, and click the Create Database button.

You will see your new database pending in the Dashboard.

my-pic

The status will change to Active when the database is ready, this will only take 2-3 minutes. You will also receive an email when it is ready.

๐Ÿ‘๏ธ Walkthrough

The Walkthrough mentions the wrong keyspace, make sure to use ecommerce

image

๐Ÿ  Back to Table of Contents

3. Create your schema

Introduction This section will provide DDL to create three tables inside the "ecommerce" keyspace: category, price, and product.

The product table supports all product data queries, and uses product_id as a single key. It has a few columns for specific product data, but any ad-hoc or non-standard properties can be added to the specifications map.

The category table will support all product navigation service calls. It is designed to provide recursive, hierarchical navigation without a pre-set limit on the number of levels. The top-most level only exists as a parent_id, and the bottom-most level contains products.

The price table was intentionally split-off from product. There are several reasons for this. Price data is much more likely to change than pure product data (different read/write patterns). Also, large enterprises typically have separate teams for product and price, meaning they will usually have different micro-service layers and data stores.

The featured_product_groups table was a late-add, to be able to provide some extra "atmosphere" of an e-commerce website. This way, the UI has a means by which to highlight a few, select products.

โœ… 3a. Open the CqlConsole on Astra

use ecommerce;

โœ… 3b. Execute the following CQL script to create the schema

/* category table */
CREATE TABLE IF NOT EXISTS category (
    parent_id UUID,
    category_id UUID,
    name TEXT,
    image TEXT,
    products LIST<TEXT>,
PRIMARY KEY (parent_id,category_id));

/* price table */
CREATE TABLE IF NOT EXISTS price (
    product_id TEXT,
    store_id TEXT,
    value DECIMAL,
PRIMARY KEY(product_id,store_id));

/* product table */
CREATE TABLE IF NOT EXISTS product (
    product_id TEXT,
    product_group TEXT,
    name TEXT,
    brand TEXT,
    model_number TEXT,
    short_desc TEXT,
    long_desc TEXT,
    specifications MAP<TEXT,TEXT>,
    linked_documents MAP<TEXT,TEXT>,
    images SET<TEXT>,
PRIMARY KEY(product_id));

/* featured product groups table */
CREATE TABLE IF NOT EXISTS featured_product_groups (
    feature_id INT,
    category_id UUID,
    name TEXT,
    image TEXT,
    parent_id UUID,
    price DECIMAL,
PRIMARY KEY (feature_id,category_id));

๐Ÿ  Back to Table of Contents

4. Populate the Data

โœ… 4a. Execute the following script to populate some data

INSERT INTO category (name,category_id,image,parent_id) VALUES ('Clothing',18105592-77aa-4469-8556-833b419dacf4,'ls534.png',ffdac25a-0244-4894-bb31-a0884bc82aa9);
INSERT INTO category (name,category_id,image,parent_id) VALUES ('Tech Accessories',5929e846-53e8-473e-8525-80b666c46a83,'',ffdac25a-0244-4894-bb31-a0884bc82aa9);
INSERT INTO category (name,category_id,image,parent_id) VALUES ('Cups and Mugs',675cf3a2-2752-4de7-ae2e-849471c29f51,'',ffdac25a-0244-4894-bb31-a0884bc82aa9);
INSERT INTO category (name,category_id,image,parent_id) VALUES ('Wall Decor',591bf485-de09-4b46-8fd2-5d9dc7ca101e,'bh001.png',ffdac25a-0244-4894-bb31-a0884bc82aa9);
INSERT INTO category (name,category_id,image,parent_id) VALUES ('T-Shirts',91455473-212e-4c6e-8bec-1da06779ae10,'ls534.png',18105592-77aa-4469-8556-833b419dacf4);
INSERT INTO category (name,category_id,image,parent_id) VALUES ('Hoodies',6a4d86aa-ceb5-4c6f-b9b9-80e9a8c58ad1,'',18105592-77aa-4469-8556-833b419dacf4);
INSERT INTO category (name,category_id,image,parent_id) VALUES ('Jackets',d887b049-d16c-46e1-8c94-0a1280dedc30,'',18105592-77aa-4469-8556-833b419dacf4);
INSERT INTO category (name,category_id,image,parent_id) VALUES ('Mousepads',d04dfb5b-69c6-4e97-b572-e9e390165a84,'',5929e846-53e8-473e-8525-80b666c46a83);
INSERT INTO category (name,category_id,image,parent_id) VALUES ('Wrist Rests',aa161129-d456-45ba-b1f0-fac7898b6d06,'',5929e846-53e8-473e-8525-80b666c46a83);
INSERT INTO category (name,category_id,image,parent_id) VALUES ('Laptop Covers',1c4b8599-78df-4f93-9c52-578bd959a3a5,'',5929e846-53e8-473e-8525-80b666c46a83);
INSERT INTO category (name,category_id,image,parent_id) VALUES ('Cups',7536fdef-fcd9-44a3-9360-0bffd2904408,'',675cf3a2-2752-4de7-ae2e-849471c29f51);
INSERT INTO category (name,category_id,image,parent_id) VALUES ('Coffee Mugs',20374300-185c-4ee5-b0bc-77fbdc3a21ed,'',675cf3a2-2752-4de7-ae2e-849471c29f51);
INSERT INTO category (name,category_id,image,parent_id) VALUES ('Travel Mugs',0660483e-2fad-447b-b19a-63ab4935e482,'',675cf3a2-2752-4de7-ae2e-849471c29f51);
INSERT INTO category (name,category_id,image,parent_id) VALUES ('Posters',fdbe9dcb-6878-4216-a64d-27c094b1b075,'',591bf485-de09-4b46-8fd2-5d9dc7ca101e);
INSERT INTO category (name,category_id,image,parent_id) VALUES ('Wall Art',943482f9-070c-4390-bb30-2107b6fe653a,'bh001.png',591bf485-de09-4b46-8fd2-5d9dc7ca101e);
INSERT INTO category (name,category_id,image,parent_id,products) VALUES ('Men''s "Go Away...Annotation" T-Shirt',99c4d825-d262-4a95-a04e-cc72e7e273c1,'ls534.png',91455473-212e-4c6e-8bec-1da06779ae10,['LS534S','LS534M','LS534L','LS534XL','LS5342XL','LS5343XL']);
INSERT INTO category (name,category_id,image,parent_id,products) VALUES ('Men''s "Your Face...Autowired" T-Shirt',3fa13eee-d057-48d0-b0ae-2d83af9e3e3e,'ls355.png',91455473-212e-4c6e-8bec-1da06779ae10,['LS355S','LS355M','LS355L','LS355XL','LS3552XL','LS3553XL']);
INSERT INTO category (name,category_id,image,parent_id,products) VALUES ('Bigheads',2f25a732-0744-406d-baee-3e8131cbe500,'bh001.png',943482f9-070c-4390-bb30-2107b6fe653a,['bh001','bh002','bh003']);
INSERT INTO category (name,category_id,image,parent_id,products) VALUES ('DataStax Gray Track Jacket',f629e107-b219-4563-a852-6909fd246949,'dss821.jpg',d887b049-d16c-46e1-8c94-0a1280dedc30,['DSS821S','DSS821M','DSS821L','DSS821XL']);
INSERT INTO category (name,category_id,image,parent_id,products) VALUES ('DataStax Vintage 2015 MVP Hoodie',86d234a4-6b97-476c-ada8-efb344d39743,'dsh915.jpg',6a4d86aa-ceb5-4c6f-b9b9-80e9a8c58ad1,['DSH915S','DSH915M','DSH915L','DSH915XL']);
INSERT INTO category (name,category_id,image,parent_id,products) VALUES ('DataStax Black Hoodie',b9bed3c0-0a76-44ea-bce6-f5f21611a3f1,'dsh916.jpg',6a4d86aa-ceb5-4c6f-b9b9-80e9a8c58ad1,['DSH916S','DSH916M','DSH916L','DSH916XL']);
INSERT INTO category (name,category_id,image,parent_id,products) VALUES ('Apache Cassandra 3.0 Contributor T-Shirt',95ae4613-0184-46ee-b4b0-adfe882754a8,'apc30a.jpg',91455473-212e-4c6e-8bec-1da06779ae10,['APC30S','APC30M','APC30L','APC30XL','APC302XL','APC303XL']);
INSERT INTO category (name,category_id,image,parent_id,products) VALUES ('DataStax Astra "One Team" Long Sleeve Tee',775be203-1a84-4822-9645-4da98ca2b2d8,'dsa1121.jpg',91455473-212e-4c6e-8bec-1da06779ae10,['DSA1121S','DSA1121M','DSA1121L','DSA1121XL','DSA11212XL','DSA11213XL']);

INSERT INTO price(product_id,store_id,value) VALUES ('LS534S','web',14.99);
INSERT INTO price(product_id,store_id,value) VALUES ('LS534M','web',14.99);
INSERT INTO price(product_id,store_id,value) VALUES ('LS534L','web',14.99);
INSERT INTO price(product_id,store_id,value) VALUES ('LS534XL','web',14.99);
INSERT INTO price(product_id,store_id,value) VALUES ('LS5342XL','web',16.99);
INSERT INTO price(product_id,store_id,value) VALUES ('LS5343XL','web',16.99);
INSERT INTO price(product_id,store_id,value) VALUES ('LN355S','web',14.99);
INSERT INTO price(product_id,store_id,value) VALUES ('LN355M','web',14.99);
INSERT INTO price(product_id,store_id,value) VALUES ('LN355L','web',14.99);
INSERT INTO price(product_id,store_id,value) VALUES ('LN355XL','web',14.99);
INSERT INTO price(product_id,store_id,value) VALUES ('LN3552XL','web',16.99);
INSERT INTO price(product_id,store_id,value) VALUES ('LN3553XL','web',16.99);
INSERT INTO price(product_id,store_id,value) VALUES ('DSA1121S','web',21.99);
INSERT INTO price(product_id,store_id,value) VALUES ('DSA1121M','web',21.99);
INSERT INTO price(product_id,store_id,value) VALUES ('DSA1121L','web',21.99);
INSERT INTO price(product_id,store_id,value) VALUES ('DSA1121XL','web',21.99);
INSERT INTO price(product_id,store_id,value) VALUES ('DSA11212XL','web',23.99);
INSERT INTO price(product_id,store_id,value) VALUES ('DSA11213XL','web',23.99);
INSERT INTO price(product_id,store_id,value) VALUES ('DSS821S','web',44.99);
INSERT INTO price(product_id,store_id,value) VALUES ('DSS821M','web',44.99);
INSERT INTO price(product_id,store_id,value) VALUES ('DSS821L','web',44.99);
INSERT INTO price(product_id,store_id,value) VALUES ('DSS821XL','web',44.99);
INSERT INTO price(product_id,store_id,value) VALUES ('DSH915S','web',35.99);
INSERT INTO price(product_id,store_id,value) VALUES ('DSH915M','web',35.99);
INSERT INTO price(product_id,store_id,value) VALUES ('DSH915L','web',35.99);
INSERT INTO price(product_id,store_id,value) VALUES ('DSH915XL','web',35.99);
INSERT INTO price(product_id,store_id,value) VALUES ('DSH916S','web',35.99);
INSERT INTO price(product_id,store_id,value) VALUES ('DSH916M','web',35.99);
INSERT INTO price(product_id,store_id,value) VALUES ('DSH916L','web',35.99);
INSERT INTO price(product_id,store_id,value) VALUES ('DSH916XL','web',35.99);
INSERT INTO price(product_id,store_id,value) VALUES ('APC30S','web',15.99);
INSERT INTO price(product_id,store_id,value) VALUES ('APC30M','web',15.99);
INSERT INTO price(product_id,store_id,value) VALUES ('APC30L','web',15.99);
INSERT INTO price(product_id,store_id,value) VALUES ('APC30XL','web',15.99);
INSERT INTO price(product_id,store_id,value) VALUES ('APC302XL','web',17.99);
INSERT INTO price(product_id,store_id,value) VALUES ('APC303XL','web',17.99);

INSERT INTO product(product_id,product_group,name,brand,model_number,short_desc,long_desc,specifications,images)
VALUES ('LS534S','LS534','Go Away Annotation T-Shirt','NerdShirts','NS101','Men''s Small "Go Away...Annotation" T-Shirt','Having to answer support questions when you really want to get back to coding?  Wear this to work, and let there be no question as to what you''d rather be doing.',{'size':'Small','material':'cotton, polyester','cut':'men''s','color':'black'},{'ls534.png'});
INSERT INTO product(product_id,product_group,name,brand,model_number,short_desc,long_desc,specifications,images)
VALUES ('LS534M','LS534','Go Away Annotation T-Shirt','NerdShirts','NS101','Men''s Medium "Go Away...Annotation" T-Shirt','Having to answer support questions when you really want to get back to coding?  Wear this to work, and let there be no question as to what you''d rather be doing.',{'size':'Medium','material':'cotton, polyester','cut':'men''s','color':'black'},{'ls534.png'});
INSERT INTO product(product_id,product_group,name,brand,model_number,short_desc,long_desc,specifications,images)
VALUES ('LS534L','LS534','Go Away Annotation T-Shirt','NerdShirts','NS101','Men''s Large "Go Away...Annotation" T-Shirt','Having to answer support questions when you really want to get back to coding?  Wear this to work, and let there be no question as to what you''d rather be doing.',{'size':'Large','material':'cotton, polyester','cut':'men''s','color':'black'},{'ls534.png'});
INSERT INTO product(product_id,product_group,name,brand,model_number,short_desc,long_desc,specifications,images)
VALUES ('LS534XL','LS534','Go Away Annotation T-Shirt','NerdShirts','NS101','Men''s Extra Large "Go Away...Annotation" T-Shirt','Having to answer support questions when you really want to get back to coding?  Wear this to work, and let there be no question as to what you''d rather be doing.',{'size':'Extra Large','material':'cotton, polyester','cut':'men''s','color':'black'},{'ls534.png'});
INSERT INTO product(product_id,product_group,name,brand,model_number,short_desc,long_desc,specifications,images)
VALUES ('LS5342XL','LS534','Go Away Annotation T-Shirt','NerdShirts','NS101','Men''s 2x Large "Go Away...Annotation" T-Shirt','Having to answer support questions when you really want to get back to coding?  Wear this to work, and let there be no question as to what you''d rather be doing.',{'size':'2x Large','material':'cotton, polyester','cut':'men''s','color':'black'},{'ls534.png'});
INSERT INTO product(product_id,product_group,name,brand,model_number,short_desc,long_desc,specifications,images)
VALUES ('LS5343XL','LS534','Go Away Annotation T-Shirt','NerdShirts','NS101','Men''s 3x Large "Go Away...Annotation" T-Shirt','Having to answer support questions when you really want to get back to coding?  Wear this to work, and let there be no question as to what you''d rather be doing.',{'size':'3x Large','material':'cotton, polyester','cut':'men''s','color':'black'},{'ls534.png'});
INSERT INTO product(product_id,product_group,name,brand,model_number,short_desc,long_desc,specifications,images)
VALUES ('LN355S','LN355','Your Face is an @Autowired @Bean T-Shirt','NerdShirts','NS102','Men''s Small "Your Face...Autowired" T-Shirt','Everyone knows that one person who overuses the "your face" jokes.',{'size':'Small','material':'cotton, polyester','cut':'men''s','color':'black'},{'ln355.png'});
INSERT INTO product(product_id,product_group,name,brand,model_number,short_desc,long_desc,specifications,images)
VALUES ('LN355M','LN355','Your Face is an @Autowired @Bean T-Shirt','NerdShirts','NS102','Men''s Medium "Your Face...Autowired" T-Shirt','Everyone knows that one person who overuses the "your face" jokes.',{'size':'Medium','material':'cotton, polyester','cut':'men''s','color':'black'},{'ln355.png'});
INSERT INTO product(product_id,product_group,name,brand,model_number,short_desc,long_desc,specifications,images)
VALUES ('LN355L','LN355','Your Face is an @Autowired @Bean T-Shirt','NerdShirts','NS102','Men''s Large "Your Face...Autowired" T-Shirt','Everyone knows that one person who overuses the "your face" jokes.',{'size':'Large','material':'cotton, polyester','cut':'men''s','color':'black'},{'ln355.png'});
INSERT INTO product(product_id,product_group,name,brand,model_number,short_desc,long_desc,specifications,images)
VALUES ('LN355XL','LN355','Your Face is an @Autowired @Bean T-Shirt','NerdShirts','NS102','Men''s Extra Large "Your Face...Autowired" T-Shirt','Everyone knows that one person who overuses the "your face" jokes.',{'size':'Extra Large','material':'cotton, polyester','cut':'men''s','color':'black'},{'ln355.png'});
INSERT INTO product(product_id,product_group,name,brand,model_number,short_desc,long_desc,specifications,images)
VALUES ('LN3552XL','LN355','Your Face is an @Autowired @Bean T-Shirt','NerdShirts','NS102','Men''s 2x Large "Your Face...Autowired" T-Shirt','Everyone knows that one person who overuses the "your face" jokes.',{'size':'2x Large','material':'cotton, polyester','cut':'men''s','color':'black'},{'ln355.png'});
INSERT INTO product(product_id,product_group,name,brand,model_number,short_desc,long_desc,specifications,images)
VALUES ('LN355XL','LN355','Your Face is an @Autowired @Bean T-Shirt','NerdShirts','NS102','Men''s 3x Large "Your Face...Autowired" T-Shirt','Everyone knows that one person who overuses the "your face" jokes.',{'size':'3x Large','material':'cotton, polyester','cut':'men''s','color':'black'},{'ln355.png'});
INSERT INTO product(product_id,product_group,name,brand,model_number,short_desc,long_desc,specifications,images)
VALUES ('DSA1121S','DSA1121','DataStax Astra "One Team" Long Sleeve Tee','DataStax','DSA1121','DataStax Astra "One Team" Long Sleeve Tee - Small','Given out at the internal summit, show how proud you are to talk about the world''s best multi-region, multi-cloud, serverless database!',{'size':'Small','material':'cotton, polyester','color':'black'},{'apc30.jpg'});
INSERT INTO product(product_id,product_group,name,brand,model_number,short_desc,long_desc,specifications,images)
VALUES ('DSA1121M','DSA1121','DataStax Astra "One Team" Long Sleeve Tee','DataStax','DSA1121','DataStax Astra "One Team" Long Sleeve Tee - Medium','Given out at the internal summit, show how proud you are to talk about the world''s best multi-region, multi-cloud, serverless database!',{'size':'Medium','material':'cotton, polyester','color':'black'},{'apc30.jpg'});
INSERT INTO product(product_id,product_group,name,brand,model_number,short_desc,long_desc,specifications,images)
VALUES ('DSA1121L','DSA1121','DataStax Astra "One Team" Long Sleeve Tee','DataStax','DSA1121','DataStax Astra "One Team" Long Sleeve Tee - Large','Given out at the internal summit, show how proud you are to talk about the world''s best multi-region, multi-cloud, serverless database!',{'size':'Large','material':'cotton, polyester','color':'black'},{'apc30.jpg'});
INSERT INTO product(product_id,product_group,name,brand,model_number,short_desc,long_desc,specifications,images)
VALUES ('DSA1121XL','DSA1121','DataStax Astra "One Team" Long Sleeve Tee','DataStax','DSA1121','DataStax Astra "One Team" Long Sleeve Tee - Extra Large','Given out at the internal summit, show how proud you are to talk about the world''s best multi-region, multi-cloud, serverless database!',{'size':'Extra Large','material':'cotton, polyester','color':'black'},{'apc30.jpg'});
INSERT INTO product(product_id,product_group,name,brand,model_number,short_desc,long_desc,specifications,images)
VALUES ('DSA11212XL','DSA1121','DataStax Astra "One Team" Long Sleeve Tee','DataStax','DSA1121','DataStax Astra "One Team" Long Sleeve Tee - 2X Large','Given out at the internal summit, show how proud you are to talk about the world''s best multi-region, multi-cloud, serverless database!',{'size':'2X Large','material':'cotton, polyester','color':'black'},{'apc30.jpg'});
INSERT INTO product(product_id,product_group,name,brand,model_number,short_desc,long_desc,specifications,images)
VALUES ('DSA11213XL','DSA1121','DataStax Astra "One Team" Long Sleeve Tee','DataStax','DSA1121','DataStax Astra "One Team" Long Sleeve Tee - 3X Large','Given out at the internal summit, show how proud you are to talk about the world''s best multi-region, multi-cloud, serverless database!',{'size':'3X Large','material':'cotton, polyester','color':'black'},{'apc30.jpg'});
INSERT INTO product(product_id,product_group,name,brand,model_number,short_desc,long_desc,specifications,images)
VALUES ('APC30S','APC30','Apache Cassandra 3.0 Contributor T-Shirt','Apache Foundation','APC30','Apache Cassandra 3.0 Contributor T-Shirt - Small','Own a piece of Cassandra history with this Apache Cassandra 3.0 "Contributor" shirt.  Given out to all of the contributors to the project in 2016, shows the unmistakable Cassandra Eye on the front, with the
engine rebuild" on the back.',{'size':'Small','material':'cotton, polyester','color':'black'},{'apc30.jpg'});
INSERT INTO product(product_id,product_group,name,brand,model_number,short_desc,long_desc,specifications,images)
VALUES ('APC30M','APC30','Apache Cassandra 3.0 Contributor T-Shirt','Apache Foundation','APC30','Apache Cassandra 3.0 Contributor T-Shirt - Medium','Own a piece of Cassandra history with this Apache Cassandra 3.0 "Contributor" shirt.  Given out to all of the contributors to the project in 2016, shows the unmistakable Cassandra Eye on the front, with the
engine rebuild" on the back.',{'size':'Medium','material':'cotton, polyester','color':'black'},{'apc30.jpg'});
INSERT INTO product(product_id,product_group,name,brand,model_number,short_desc,long_desc,specifications,images)
VALUES ('APC30L','APC30','Apache Cassandra 3.0 Contributor T-Shirt','Apache Foundation','APC30','Apache Cassandra 3.0 Contributor T-Shirt - Large','Own a piece of Cassandra history with this Apache Cassandra 3.0 "Contributor" shirt.  Given out to all of the contributors to the project in 2016, shows the unmistakable Cassandra Eye on the front, with the
engine rebuild" on the back.',{'size':'Large','material':'cotton, polyester','color':'black'},{'apc30.jpg'});
INSERT INTO product(product_id,product_group,name,brand,model_number,short_desc,long_desc,specifications,images)
VALUES ('APC30XL','APC30','Apache Cassandra 3.0 Contributor T-Shirt','Apache Foundation','APC30','Apache Cassandra 3.0 Contributor T-Shirt - Extra Large','Own a piece of Cassandra history with this Apache Cassandra 3.0 "Contributor" shirt.  Given out to all of the contributors to the project in 2016, shows the unmistakable Cassandra Eye on the front, with the
engine rebuild" on the back.',{'size':'Extra Large','material':'cotton, polyester','color':'black'},{'apc30.jpg'});
INSERT INTO product(product_id,product_group,name,brand,model_number,short_desc,long_desc,specifications,images)
VALUES ('APC302XL','APC30','Apache Cassandra 3.0 Contributor T-Shirt','Apache Foundation','APC30','Apache Cassandra 3.0 Contributor T-Shirt - 2X Large','Own a piece of Cassandra history with this Apache Cassandra 3.0 "Contributor" shirt.  Given out to all of the contributors to the project in 2016, shows the unmistakable Cassandra Eye on the front, with the
engine rebuild" on the back.',{'size':'2X Large','material':'cotton, polyester','color':'black'},{'apc30.jpg'});
INSERT INTO product(product_id,product_group,name,brand,model_number,short_desc,long_desc,specifications,images)
VALUES ('APC303XL','APC30','Apache Cassandra 3.0 Contributor T-Shirt','Apache Foundation','APC30','Apache Cassandra 3.0 Contributor T-Shirt - 3X Large','Own a piece of Cassandra history with this Apache Cassandra 3.0 "Contributor" shirt.  Given out to all of the contributors to the project in 2016, shows the unmistakable Cassandra Eye on the front, with the
engine rebuild" on the back.',{'size':'3X Large','material':'cotton, polyester','color':'black'},{'apc30.jpg'});
INSERT INTO product(product_id,product_group,name,brand,model_number,short_desc,long_desc,specifications,images)
VALUES ('DSS821S','DSS821','DataStax Gray Track Jacket','DataStax','DSS821','DataStax Gray Track Jacket - Small','This lightweight polyester jacket will be your favorite while hiking the trails or teeing off.',{'size':'Small','material':'polyester','color':'gray'},{'dss821.jpg'});
INSERT INTO product(product_id,product_group,name,brand,model_number,short_desc,long_desc,specifications,images)
VALUES ('DSS821M','DSS821','DataStax Gray Track Jacket','DataStax','DSS821','DataStax Gray Track Jacket - Medium','This lightweight polyester jacket will be your favorite while hiking the trails or teeing off.',{'size':'Medium','material':'polyester','color':'gray'},{'dss821.jpg'});
INSERT INTO product(product_id,product_group,name,brand,model_number,short_desc,long_desc,specifications,images)
VALUES ('DSS821L','DSS821','DataStax Gray Track Jacket','DataStax','DSS821','DataStax Gray Track Jacket - Large','This lightweight polyester jacket will be your favorite while hiking the trails or teeing off.',{'size':'Large','material':'polyester','color':'gray'},{'dss821.jpg'});
INSERT INTO product(product_id,product_group,name,brand,model_number,short_desc,long_desc,specifications,images)
VALUES ('DSS821XL','DSS821','DataStax Gray Track Jacket','DataStax','DSS821','DataStax Gray Track Jacket - Extra Large','This lightweight polyester jacket will be your favorite while hiking the trails or teeing off.',{'size':'Extra Large','material':'polyester','color':'gray'},{'dss821.jpg'});
INSERT INTO product(product_id,product_group,name,brand,model_number,short_desc,long_desc,specifications,images)
VALUES ('DSH915S','DSH915','DataStax Vintage 2015 MVP Hoodie','DataStax','DSS915','DataStax Vintage 2015 MVP Hoodie - Small','Given out to MVPs at the 2015 DataStax Cassandra Summit.  Warm!  You will underestimate how many times you will fall asleep wearing this!',{'size':'Small','color':'black'},{'dsh915.jpg'});
INSERT INTO product(product_id,product_group,name,brand,model_number,short_desc,long_desc,specifications,images)
VALUES ('DSH915M','DSH915','DataStax Vintage 2015 MVP Hoodie','DataStax','DSS915','DataStax Vintage 2015 MVP Hoodie - Medium','Given out to MVPs at the 2015 DataStax Cassandra Summit.  Warm!  You will underestimate how many times you will fall asleep wearing this!',{'size':'Medium','color':'black'},{'dsh915.jpg'});
INSERT INTO product(product_id,product_group,name,brand,model_number,short_desc,long_desc,specifications,images)
VALUES ('DSH915L','DSH915','DataStax Vintage 2015 MVP Hoodie','DataStax','DSS915','DataStax Vintage 2015 MVP Hoodie - Large','Given out to MVPs at the 2015 DataStax Cassandra Summit.  Warm!  You will underestimate how many times you will fall asleep wearing this!',{'size':'Large','color':'black'},{'dsh915.jpg'});
INSERT INTO product(product_id,product_group,name,brand,model_number,short_desc,long_desc,specifications,images)
VALUES ('DSH915XL','DSH915','DataStax Vintage 2015 MVP Hoodie','DataStax','DSS915','DataStax Vintage 2015 MVP Hoodie - Extra Large','Given out to MVPs at the 2015 DataStax Cassandra Summit.  Warm!  You will underestimate how many times you will fall asleep wearing this!',{'size':'Extra Large','color':'black'},{'dsh915.jpg'});
INSERT INTO product(product_id,product_group,name,brand,model_number,short_desc,long_desc,specifications,images)
VALUES ('DSH916S','DSH916','DataStax Vintage 2015 MVP Hoodie','DataStax','DSS916','DataStax Black Hoodie - Small','Super warm!  You will underestimate how many times you will fall asleep wearing this!',{'size':'Small','color':'black'},{'dsh916.jpg'});
INSERT INTO product(product_id,product_group,name,brand,model_number,short_desc,long_desc,specifications,images)
VALUES ('DSH916M','DSH916','DataStax Vintage 2015 MVP Hoodie','DataStax','DSS916','DataStax Black Hoodie - Medium','Super warm!  You will underestimate how many times you will fall asleep wearing this!',{'size':'Medium','color':'black'},{'dsh916.jpg'});
INSERT INTO product(product_id,product_group,name,brand,model_number,short_desc,long_desc,specifications,images)
VALUES ('DSH916L','DSH916','DataStax Vintage 2015 MVP Hoodie','DataStax','DSS916','DataStax Black Hoodie - Large','Super warm!  You will underestimate how many times you will fall asleep wearing this!',{'size':'Large','color':'black'},{'dsh916.jpg'});
INSERT INTO product(product_id,product_group,name,brand,model_number,short_desc,long_desc,specifications,images)
VALUES ('DSH916XL','DSH916','DataStax Black Hoodie','DataStax','DSS916','DataStax Black Hoodie - Extra Large','Super warm!  You will underestimate how many times you will fall asleep wearing this!',{'size':'Extra Large','color':'black'},{'dsh916.jpg'});

INSERT INTO featured_product_groups (feature_id,name,category_id,image,price,parent_id) VALUES (202112,'DataStax Gray Track Jacket',f629e107-b219-4563-a852-6909fd246949,'dss821.jpg',44.99,d887b049-d16c-46e1-8c94-0a1280dedc30);
INSERT INTO featured_product_groups (feature_id,name,category_id,image,price,parent_id) VALUES (202112,'DataStax Black Hoodie',b9bed3c0-0a76-44ea-bce6-f5f21611a3f1,'dsh916.jpg',35.99,6a4d86aa-ceb5-4c6f-b9b9-80e9a8c58ad1);
INSERT INTO featured_product_groups (feature_id,name,category_id,image,price,parent_id) VALUES (202112,'Apache Cassandra 3.0 Contributor T-Shirt',95ae4613-0184-46ee-b4b0-adfe882754a8,'apc30a.jpg',15.99,91455473-212e-4c6e-8bec-1da06779ae10);
INSERT INTO featured_product_groups (feature_id,name,category_id,image,price,parent_id) VALUES (202112,'DataStax Astra "One Team" Long Sleeve Tee',775be203-1a84-4822-9645-4da98ca2b2d8,'dsa1121.jpg',21.99,91455473-212e-4c6e-8bec-1da06779ae10);

Although it's not advised to use wildcards as below, you can verify the data has been created with the following command.

select * from CATEGORY;

Notes:

  • The "top" categories of the product hierarchy can be retrieved using a parent_id of "ffdac25a-0244-4894-bb31-a0884bc82aa9".
  • Without specifying a category_id, all categories for the parent_id are returned.
  • When a category from the "bottom" of the hierarchy is queried, a populated products ArrayList will be returned. From there, the returned product_ids can be used with the /product service.
  • Category navigation is achieved by using the parent_id and category_id properties returned for each category (to build the "next level" category links).
  • /category/ffdac25a-0244-4894-bb31-a0884bc82aa9 => Category[Clothing, Cups and Mugs, Tech Accessories, Wall Decor]
  • /category/ffdac25a-0244-4894-bb31-a0884bc82aa9/18105592-77aa-4469-8556-833b419dacf4 => Category[Clothing]
  • /category/18105592-77aa-4469-8556-833b419dacf4 => Category[T-Shirts, Hoodies, Jackets]
  • /category/91455473-212e-4c6e-8bec-1da06779ae10 => Category[Men's "Your Face...Autowired" T-Shirt, Men's "Go Away...Annotation" T-Shirt]
  • The featured products table is a simple way for web marketers to promote small numbers of products, and have them appear in an organized fashion on the main page. The feature_id key is simply an integer, with the default being 202112 (for December, 2021). You can (of course) use other numeric naming schemes.

๐Ÿ  Back to Table of Contents

5. Create your token

โœ… 5a. Create the token

Following the Manage Application Tokens docs create a token with Database Admnistrator roles.

  • Go the Organization Settings

  • Go to Token Management

  • Pick the role Database Administrator on the select box

  • Click Generate token

๐Ÿ‘๏ธ Walkthrough

image

This is what the token page looks like. You can now download the values as a CSV. We will need those values but you can also keep this window open for use later.

image

  • appToken: We will use it as a api token Key to interact with APIs.

โœ… 5b. Save your token locally

To know more about roles of each token you can have a look to this video.

Note: Make sure you don't close the window accidentally or otherwise - if you close this window before you copy the values, the application token is lost forever. They won't be available later for security reasons.

We are now set with the database and credentials and will incorporate them into the application as we will see below.

๐Ÿ  Back to Table of Contents

6. Setup your application

Know your gitpod

Take a moment to read this entire section since it'll help you with the rest of the workshop as you'll be spending most of your time in Gitpod. If you're familiar with Gitpod, you can easily skip this entire section.

The extreme left side has the explorer view(1). The top left, middle to right is where you'll be editing files(2), etc. and the bottom left, middle to right is what we will refer to as the Gitpod terminal window(3) as shown below.

๐Ÿ‘๏ธ Expected output

gitpod

You can always get back to the file explorer view whenever by clicking on the hamburger menu on the top left followed by View and Explorer as shown below.

gitpod

โœ… Know your public URL

The workshop application has opened with an ephemeral URL. To know the URL where your application endpoint will be exposed you can run the following command in the terminal after the build has completed. Please note this URL and open this up in a new browser window as shown below.

gp url 8080

๐Ÿ‘๏ธ Expected output

gitpod

Pay attention to popups being blocked as shown below and allow the popups.

gitpod

You may encounter the following at different steps and although this may not be applicable right away, the steps are included in advance and summarized here so that you can keep an eye out for it. Different paths and different environments might be slightly different although Gipod levels the playing field a bit.

You can allow cutting and pasting into the window by clicking on Allow as shown below.

gitpod

โœ… 6a: Enter the token

To run the application you need to provide the credentials and identifier to the application. you will have to provide 4 values in total as shown below

Open in Gitpod

Copy the environment sample file as below.

cp .env.example .env

Open the .env file as below.

gp open .env
  • In Astra DB go back to home page by clicking the logo

  • Select you database demos in the left panel and then copy values for cloud-region and database-id (clusterID) from the details page as shown below.

  • The DatabaseID is located on the home page

Ecom Welcome Screen

  • The Database region (and keyspace) are located in the details page

Ecom Welcome Screen

  • Replace application-token with values shown on the Astra token screen or picking the values from the CSV token file your dowloaded before including the AstraCS: part of the token.

  • Make sure the Token looks something like (with AstraCS: preceeding AstraCS:xxxxxxxxxxx:yyyyyyyyyyy

# Copy this file to .env and fill in the appropriate values. Refer to README.md
# for instructions on where to find them.
export ASTRA_DB_ID=
export ASTRA_DB_REGION=
export ASTRA_DB_APPLICATION_TOKEN=
export ASTRA_DB_KEYSPACE=ecommerce

Make sure to inject the environment variables by running the following command

source .env

Verify that the environment variables are properly setup with the following command

env | grep -i astra

You should see four environment variables (not shown here).

๐Ÿ  Back to Table of Contents

7. Run Unit Tests

The application is now set you should be able to interact with your DB. Let's demonstrate some capabilities.

โœ… 7a: Use CqlSession

Interaction with Cassandra are implemented in Java through drivers and the main Class is CqlSession.

Higher level frameworks like Spring, Spring Data, or even quarkus will rely on this object so let's make sure it is part of your Spring context with a @SpringBootTest.

Let's change to the sub-directory from the terminal window as shown below.

cd backend

Let's run the first test with the following command.

mvn test -Dtest=com.datastax.tutorials.Test01_Connectivity

๐Ÿ‘๏ธ Expected output

[..init...]
Execute some Cql (CqlSession)
+ Your Keyspace: sag_ecommerce
+ Product Categories:
Clothing
Cups and Mugs
Tech Accessories
Wall Decor
List Databases available in your Organization (AstraClient)
+ Your OrganizationID: e195fbea-79b6-4d60-9291-063d8c9e6364
+ Your Databases:
workshops	 : id=8c98b922-aeb0-4435-a0d5-a2788e23dff8, region=eu-central-1
sample_apps	 : id=c2d6bd3d-6112-47f6-9b66-b033e6174f0e, region=us-east-1
sdk_tests	 : id=a52f5879-3476-42d2-b5c9-81b18fc6d103, region=us-east-1
metrics	 : id=d7ded041-3cfb-4dd4-9957-e20003c3ebe2, region=us-east-1

โœ… 7b: Working With Spring Data

Spring Data allows Mapping Object <=> Table based on annotation at the java bean level. Then by convention CQL query will be executed under the hood.

mvn test -Dtest=com.datastax.tutorials.Test02_SpringData

๐Ÿ‘๏ธ Expected output

Categories:
- Clothing with children:[T-Shirts, Hoodies, Jackets]
- Cups and Mugs with children:[Cups, Coffee Mugs, Travel Mugs]
- Tech Accessories with children:[Mousepads, Wrist Rests, Laptop Covers]
- Wall Decor with children:[Posters, Wall Art]

โœ… 7c: Working With Rest Controller

TestRestTemplate is a neat way to test a web controller. The application will start on a random port with @SpringBootTest(webEnvironment=WebEnvironment.RANDOM_PORT)

mvn test -Dtest=com.datastax.tutorials.Test03_RestController

๐Ÿ‘๏ธ Expected output

List Categories:
Clothing
Cups and Mugs
Tech Accessories
Wall Decor

๐Ÿ  Back to Table of Contents

8. Install the Backend

You can install the backend with the credentials using the following command

cd /workspace/workshop-ecommerce-app
mvn install -f backend/pom.xml -DskipTests

image

It sets up the backend open APIs that enables the frontend to obtain the data.

image

๐Ÿ  Back to Table of Contents

9. Start the Application

We've provided a convenience script that can be run as below.

./start.sh

๐Ÿ  Back to Table of Contents

Done?

Congratulations: you made to the end of today's workshop. More building to follow!!!

Badge

... and see you at our next workshop!

Sincerely yours, The DataStax Developers

Comments
  • Improvements and updates proposals

    Improvements and updates proposals

    • Remove unused imports to remove warning in Eclipse
    • Add serial number if class Serializable to remove warning in Eclipse
    • Changing from isEmpty() to isPresent to have the code Running with JDK8
    • Updating the sdk version to 0.3.0
    • Updating application.yaml to match 0.3.0 keys.
    opened by clun 1
  • [Snyk] Fix for 1 vulnerabilities

    [Snyk] Fix for 1 vulnerabilities

    Snyk has created this PR to fix one or more vulnerable packages in the `maven` dependencies of this project.

    Changes included in this PR

    • Changes to the following files to upgrade the vulnerable dependencies to a fixed version:
      • backend/pom.xml

    Vulnerabilities that will be fixed

    With an upgrade:

    Severity | Priority Score (*) | Issue | Upgrade | Breaking Change | Exploit Maturity :-------------------------:|-------------------------|:-------------------------|:-------------------------|:-------------------------|:------------------------- medium severity | 688/1000
    Why? Proof of Concept exploit, Recently disclosed, Has a fix available, CVSS 5.9 | Denial of Service (DoS)
    SNYK-JAVA-COMFASTERXMLJACKSONCORE-3038424 | com.datastax.astra:astra-spring-boot-starter:
    0.3.0 -> 0.3.4
    | No | Proof of Concept

    (*) Note that the real score may have changed since the PR was raised.

    Vulnerabilities that could not be fixed

    • Upgrade:
      • Could not upgrade org.springframework.boot:[email protected] to org.springframework.boot:[email protected]; Reason could not apply upgrade, dependency is managed externally ; Location: https://maven-central.storage-download.googleapis.com/maven2/org/springframework/boot/spring-boot-dependencies/2.6.1/spring-boot-dependencies-2.6.1.pom

    Check the changes in this PR to ensure they won't cause issues with your project.


    Note: You are seeing this because you or someone else with access to this repository has authorized Snyk to open fix PRs.

    For more information: ๐Ÿง View latest project report

    ๐Ÿ›  Adjust project settings

    ๐Ÿ“š Read more about Snyk's upgrade and patch logic


    Learn how to fix vulnerabilities with free interactive lessons:

    ๐Ÿฆ‰ Denial of Service (DoS)

    opened by snyk-bot 0
  • [Snyk] Security upgrade com.datastax.astra:astra-spring-boot-starter from 0.3.0 to 0.3.4

    [Snyk] Security upgrade com.datastax.astra:astra-spring-boot-starter from 0.3.0 to 0.3.4

    Snyk has created this PR to fix one or more vulnerable packages in the `maven` dependencies of this project.

    Changes included in this PR

    • Changes to the following files to upgrade the vulnerable dependencies to a fixed version:
      • backend/pom.xml

    Vulnerabilities that will be fixed

    With an upgrade:

    Severity | Priority Score (*) | Issue | Upgrade | Breaking Change | Exploit Maturity :-------------------------:|-------------------------|:-------------------------|:-------------------------|:-------------------------|:------------------------- medium severity | 581/1000
    Why? Recently disclosed, Has a fix available, CVSS 5.9 | Improper Certificate Validation
    SNYK-JAVA-ORGAPACHEPULSAR-3031781 | com.datastax.astra:astra-spring-boot-starter:
    0.3.0 -> 0.3.4
    | No | No Known Exploit medium severity | 581/1000
    Why? Recently disclosed, Has a fix available, CVSS 5.9 | Man-in-the-Middle (MitM)
    SNYK-JAVA-ORGAPACHEPULSAR-3031790 | com.datastax.astra:astra-spring-boot-starter:
    0.3.0 -> 0.3.4
    | No | No Known Exploit

    (*) Note that the real score may have changed since the PR was raised.

    Check the changes in this PR to ensure they won't cause issues with your project.


    Note: You are seeing this because you or someone else with access to this repository has authorized Snyk to open fix PRs.

    For more information: ๐Ÿง View latest project report

    ๐Ÿ›  Adjust project settings

    ๐Ÿ“š Read more about Snyk's upgrade and patch logic


    Learn how to fix vulnerabilities with free interactive lessons:

    ๐Ÿฆ‰ Learn about vulnerability in an interactive lesson of Snyk Learn.

    opened by snyk-bot 0
  • [Snyk] Security upgrade org.apache.pulsar:pulsar-client from 2.8.0 to 2.8.4

    [Snyk] Security upgrade org.apache.pulsar:pulsar-client from 2.8.0 to 2.8.4

    Snyk has created this PR to fix one or more vulnerable packages in the `maven` dependencies of this project.

    Changes included in this PR

    • Changes to the following files to upgrade the vulnerable dependencies to a fixed version:
      • orderProcessor/pom.xml

    Vulnerabilities that will be fixed

    With an upgrade:

    Severity | Priority Score (*) | Issue | Upgrade | Breaking Change | Exploit Maturity :-------------------------:|-------------------------|:-------------------------|:-------------------------|:-------------------------|:------------------------- medium severity | 581/1000
    Why? Recently disclosed, Has a fix available, CVSS 5.9 | Improper Certificate Validation
    SNYK-JAVA-ORGAPACHEPULSAR-3031781 | org.apache.pulsar:pulsar-client:
    2.8.0 -> 2.8.4
    | No | No Known Exploit medium severity | 581/1000
    Why? Recently disclosed, Has a fix available, CVSS 5.9 | Man-in-the-Middle (MitM)
    SNYK-JAVA-ORGAPACHEPULSAR-3031790 | org.apache.pulsar:pulsar-client:
    2.8.0 -> 2.8.4
    | No | No Known Exploit

    (*) Note that the real score may have changed since the PR was raised.

    Check the changes in this PR to ensure they won't cause issues with your project.


    Note: You are seeing this because you or someone else with access to this repository has authorized Snyk to open fix PRs.

    For more information: ๐Ÿง View latest project report

    ๐Ÿ›  Adjust project settings

    ๐Ÿ“š Read more about Snyk's upgrade and patch logic


    Learn how to fix vulnerabilities with free interactive lessons:

    ๐Ÿฆ‰ Learn about vulnerability in an interactive lesson of Snyk Learn.

    opened by snyk-bot 0
  • [Snyk] Security upgrade org.apache.pulsar:pulsar-client from 2.8.0 to 2.8.4

    [Snyk] Security upgrade org.apache.pulsar:pulsar-client from 2.8.0 to 2.8.4

    Snyk has created this PR to fix one or more vulnerable packages in the `maven` dependencies of this project.

    Changes included in this PR

    • Changes to the following files to upgrade the vulnerable dependencies to a fixed version:
      • backend/pom.xml

    Vulnerabilities that will be fixed

    With an upgrade:

    Severity | Priority Score (*) | Issue | Upgrade | Breaking Change | Exploit Maturity :-------------------------:|-------------------------|:-------------------------|:-------------------------|:-------------------------|:------------------------- medium severity | 581/1000
    Why? Recently disclosed, Has a fix available, CVSS 5.9 | Improper Certificate Validation
    SNYK-JAVA-ORGAPACHEPULSAR-3031781 | org.apache.pulsar:pulsar-client:
    2.8.0 -> 2.8.4
    | No | No Known Exploit medium severity | 581/1000
    Why? Recently disclosed, Has a fix available, CVSS 5.9 | Man-in-the-Middle (MitM)
    SNYK-JAVA-ORGAPACHEPULSAR-3031790 | org.apache.pulsar:pulsar-client:
    2.8.0 -> 2.8.4
    | No | No Known Exploit

    (*) Note that the real score may have changed since the PR was raised.

    Check the changes in this PR to ensure they won't cause issues with your project.


    Note: You are seeing this because you or someone else with access to this repository has authorized Snyk to open fix PRs.

    For more information: ๐Ÿง View latest project report

    ๐Ÿ›  Adjust project settings

    ๐Ÿ“š Read more about Snyk's upgrade and patch logic


    Learn how to fix vulnerabilities with free interactive lessons:

    ๐Ÿฆ‰ Learn about vulnerability in an interactive lesson of Snyk Learn.

    opened by snyk-bot 0
  • [Snyk] Security upgrade org.springdoc:springdoc-openapi-ui from 1.6.5 to 1.6.10

    [Snyk] Security upgrade org.springdoc:springdoc-openapi-ui from 1.6.5 to 1.6.10

    Snyk has created this PR to fix one or more vulnerable packages in the `maven` dependencies of this project.

    Changes included in this PR

    • Changes to the following files to upgrade the vulnerable dependencies to a fixed version:
      • backend/pom.xml

    Vulnerabilities that will be fixed

    With an upgrade:

    Severity | Priority Score (*) | Issue | Upgrade | Breaking Change | Exploit Maturity :-------------------------:|-------------------------|:-------------------------|:-------------------------|:-------------------------|:------------------------- high severity | 589/1000
    Why? Has a fix available, CVSS 7.5 | Denial of Service (DoS)
    SNYK-JAVA-COMFASTERXMLJACKSONCORE-2421244 | org.springdoc:springdoc-openapi-ui:
    1.6.5 -> 1.6.10
    | No | No Known Exploit

    (*) Note that the real score may have changed since the PR was raised.

    Check the changes in this PR to ensure they won't cause issues with your project.


    Note: You are seeing this because you or someone else with access to this repository has authorized Snyk to open fix PRs.

    For more information: ๐Ÿง View latest project report

    ๐Ÿ›  Adjust project settings

    ๐Ÿ“š Read more about Snyk's upgrade and patch logic


    Learn how to fix vulnerabilities with free interactive lessons:

    ๐Ÿฆ‰ Learn about vulnerability in an interactive lesson of Snyk Learn.

    opened by snyk-bot 0
  • [Snyk] Upgrade @craco/craco from 6.4.0 to 6.4.3

    [Snyk] Upgrade @craco/craco from 6.4.0 to 6.4.3

    This PR was automatically created by Snyk using the credentials of a real user.


    Snyk has created this PR to upgrade @craco/craco from 6.4.0 to 6.4.3.

    merge advice :information_source: Keep your dependencies up-to-date. This makes it easier to fix existing vulnerabilities and to more quickly identify and fix newly disclosed vulnerabilities when they affect your project.


    • The recommended version is 3 versions ahead of your current version.
    • The recommended version was released 7 months ago, on 2021-12-09.
    Release notes
    Package name: @craco/craco from @craco/craco GitHub release notes
    Commit messages
    Package name: @craco/craco
    • 8ab5cc9 v6.4.3
    • ab22104 Merge pull request #347 from Codex-/cfg_ts_loader
    • 8ff0b64 refactor: use rewritten cosmiconfig-typescript-loader package.
    • e90069a v6.4.2
    • ed076ff Merge pull request #344 from alvis/fix/ts-loader
    • 04806e3 fix: load ts config file synchronously
    • b18037c v6.4.1
    • cdd02fc Merge pull request #343 from shibin2021/master
    • 6f41383 add config 'craco.config.cjs' to support for ES6 module

    Compare


    Note: You are seeing this because you or someone else with access to this repository has authorized Snyk to open upgrade PRs.

    For more information:

    ๐Ÿง View latest project report

    ๐Ÿ›  Adjust upgrade PR settings

    ๐Ÿ”• Ignore this dependency or unsubscribe from future upgrade PRs

    opened by clun 0
  • [Snyk] Upgrade @testing-library/jest-dom from 5.15.0 to 5.16.4

    [Snyk] Upgrade @testing-library/jest-dom from 5.15.0 to 5.16.4

    This PR was automatically created by Snyk using the credentials of a real user.


    Snyk has created this PR to upgrade @testing-library/jest-dom from 5.15.0 to 5.16.4.

    merge advice :information_source: Keep your dependencies up-to-date. This makes it easier to fix existing vulnerabilities and to more quickly identify and fix newly disclosed vulnerabilities when they affect your project.


    • The recommended version is 6 versions ahead of your current version.
    • The recommended version was released 3 months ago, on 2022-04-05.
    Release notes
    Package name: @testing-library/jest-dom from @testing-library/jest-dom GitHub release notes
    Commit messages
    Package name: @testing-library/jest-dom
    • af18453 fix: Support unenclosed inner text for details elements in to be visible (#396)
    • 6988a67 fix: clarify toHaveFocus message when using `.not` (#447)
    • 4d0ceeb docs: add ashleyryan as a contributor for code, ideas (#434)
    • 1f389f8 docs: add astorije as a contributor for code, ideas (#433)
    • 8162115 fix: add custom element support to `toBeDisabled` (#368)
    • 3094eb1 docs: add cbroeren as a contributor for doc (#432)
    • 43a420a docs: Fix wrong toHaveValue example (#431)
    • a9beb47 fix: Improve `toHaveClass` error message format (#405)
    • 6f69437 docs: add IanVS as a contributor for code (#423)
    • de26c7a feat: Update aria-query to 5.0.0 (#414)
    • dfcefa2 fix: wrong deprecate error message (#422)

    Compare


    Note: You are seeing this because you or someone else with access to this repository has authorized Snyk to open upgrade PRs.

    For more information:

    ๐Ÿง View latest project report

    ๐Ÿ›  Adjust upgrade PR settings

    ๐Ÿ”• Ignore this dependency or unsubscribe from future upgrade PRs

    opened by clun 0
  • [Snyk] Upgrade react-router-dom from 6.0.2 to 6.3.0

    [Snyk] Upgrade react-router-dom from 6.0.2 to 6.3.0

    This PR was automatically created by Snyk using the credentials of a real user.


    Snyk has created this PR to upgrade react-router-dom from 6.0.2 to 6.3.0.

    merge advice :information_source: Keep your dependencies up-to-date. This makes it easier to fix existing vulnerabilities and to more quickly identify and fix newly disclosed vulnerabilities when they affect your project.


    • The recommended version is 7 versions ahead of your current version.
    • The recommended version was released 3 months ago, on 2022-03-31.
    Release notes
    Package name: react-router-dom from react-router-dom GitHub release notes

    Note: You are seeing this because you or someone else with access to this repository has authorized Snyk to open upgrade PRs.

    For more information:

    ๐Ÿง View latest project report

    ๐Ÿ›  Adjust upgrade PR settings

    ๐Ÿ”• Ignore this dependency or unsubscribe from future upgrade PRs

    opened by clun 0
  • [Snyk] Upgrade @headlessui/react from 1.4.2 to 1.6.4

    [Snyk] Upgrade @headlessui/react from 1.4.2 to 1.6.4

    This PR was automatically created by Snyk using the credentials of a real user.


    Snyk has created this PR to upgrade @headlessui/react from 1.4.2 to 1.6.4.

    :information_source: Keep your dependencies up-to-date. This makes it easier to fix existing vulnerabilities and to more quickly identify and fix newly disclosed vulnerabilities when they affect your project.


    • The recommended version is 7 versions ahead of your current version.
    • The recommended version was released a month ago, on 2022-05-29.
    Release notes
    Package name: @headlessui/react
    • 1.6.4 - 2022-05-29

      Fixed

      • Ensure Escape propagates correctly in Combobox component (#1511)
      • Remove leftover code in Combobox component (#1514)
    • 1.6.3 - 2022-05-25

      Fixed

      • Allow to override the type on the ComboboxInput (#1476)
      • Ensure the the <PopoverPanel focus> closes correctly (#1477)
      • Only render the FocusSentinel if required in the Tabs component (#1493)
    • 1.6.2 - 2022-05-19

      Fixed

      • Ensure DialogPanel exposes its ref (#1404)
      • Ignore Escape when event got prevented in Dialog component (#1424)
      • Improve FocusTrap behaviour (#1432)
      • Simplify Popover Tab logic by using sentinel nodes instead of keydown event interception (#1440)
      • Ensure the PopoverPanel is clickable without closing the Popover (#1443)
      • Improve "Scroll lock" scrollbar width for Dialog component (#1457)
      • Donโ€™t throw when SSR rendering internal portals in Vue (#1459)
    • 1.6.1 - 2022-05-03

      Fixed

      • Manually passthrough attrs for Combobox, Listbox and TabsGroup component (#1372)
      • Fix enter transitions in Vue (#1395)
    • 1.6.0 - 2022-04-25
    • 1.5.0 - 2022-02-17
    • 1.4.3 - 2022-01-14
    • 1.4.2 - 2021-11-08
    from @headlessui/react GitHub release notes
    Commit messages
    Package name: @headlessui/react
    • 6551079 1.6.4
    • 842d071 prepare 1.6.4
    • 912af7e Fix render prop data in `RadioGroup` component (#1522)
    • d19f797 update changelog
    • ce12406 fix transition `enter` bug (#1519)
    • d3ed3f5 Split `CHANGELOG.md` into file per package (#1516)
    • 21bdf52 Fix event handlers with arity > 1 (#1515)
    • a7154dc Remove leftover code in Combobox component (#1514)
    • eefc03c Ensure `Escape` propagates correctly in `Combobox` component (#1511)
    • 08b419e Revert "prepare 1.6.3"
    • 3c32369 1.6.3
    • 3aaf20b prepare 1.6.3
    • deb4b1b Ensure the Transition stops once DOM Nodes are hidden (#1500)
    • df481f3 0.1.0 - @ headlessui/tailwindcss
    • 0a81444 update README
    • e5d4b4e update changelog
    • 39c5bd3 Add `@ headlessui/tailwindcss` plugin (#1487)
    • ebf19ca cleanup unused import
    • 2396c49 small cleanup
    • dafcc2d Only render the `FocusSentinel` if required in the `Tabs` component (#1493)
    • e819c0a General/random internal cleanup (part 1) (#1484)
    • d200be5 Add `by` prop for `Listbox`, `Combobox` and `RadioGroup` (#1482)
    • cc6aaa2 Ensure the the `<Popover.Panel focus>` closes correctly (#1477)
    • 9280d92 Allow to override the `type` on the `Combobox.Input` (#1476)

    Compare


    Note: You are seeing this because you or someone else with access to this repository has authorized Snyk to open upgrade PRs.

    For more information:

    ๐Ÿง View latest project report

    ๐Ÿ›  Adjust upgrade PR settings

    ๐Ÿ”• Ignore this dependency or unsubscribe from future upgrade PRs

    opened by clun 0
  • [Snyk] Upgrade swr from 1.0.1 to 1.3.0

    [Snyk] Upgrade swr from 1.0.1 to 1.3.0

    This PR was automatically created by Snyk using the credentials of a real user.


    Snyk has created this PR to upgrade swr from 1.0.1 to 1.3.0.

    merge advice :information_source: Keep your dependencies up-to-date. This makes it easier to fix existing vulnerabilities and to more quickly identify and fix newly disclosed vulnerabilities when they affect your project.


    • The recommended version is 25 versions ahead of your current version.
    • The recommended version was released 3 months ago, on 2022-04-10.
    Release notes
    Package name: swr
    • 1.3.0 - 2022-04-10

      What's Changed

      Full Changelog: 1.2.2...1.3.0

    • 1.2.2 - 2022-02-18

      Highlights of This Release

      populateCache Option Now Supports Function

      We added better Optimistic UI support in v1.2.0. However, what if your API is only returning a subset of the data (such as the mutated part), that can be populated into the cache? Usually, an extra revalidation after that mutation is needed. But now you can also use a function as populateCache to transform the mutate result into the full data:

      await mutate(addTodo(newTodo), {
        optimisticData: [...data, newTodo],
        rollbackOnError: true,
        populateCache: (addedTodo, currentData) => {
          // `addedTodo` is what the API returns. It's not
          // returning a list of all current todos but only
          // the new added one.
          // In this case, we can transform the mutate result
          // together with current data, into the new data
          // that can be updated.
          return [...currentData, addedTodo];
        },
        // Since the API already gives us the updated information,
        // we don't need to revalidate here.
        revalidate: false,
      });

      The new definition:

      populateCache?: boolean | ((mutationResult: any, currentData: Data) => Data)

      Here is a demo for it: https://codesandbox.io/s/swr-basic-forked-hi9svh

      Bug Fixes

      What's Changed

      • refactor: revalidateIfStale has an effect on updates, not only mounting by @ koba04 in #1837
      • fix: reset stale unmountedRef in suspense by @ promer94 in #1843
      • test: add a test for the behavior of revalidateOnMount when the key has been changed by @ koba04 in #1847
      • feat: Support populateCache as a function by @ shuding in #1818

      Full Changelog: 1.2.1...1.2.2

    • 1.2.1 - 2022-02-02

      Highlights of This Release

      shouldRetryOnError accepts a function

      Previously shouldRetryOnError is either true or false. Now it accepts a function that conditionally determines if SWR should retry. Here's a simple example:

      const fetcher = url => fetch(url).then(res => { // Fetcher throws if the response code is not 2xx. if (!res.ok) throw res return res.json() })

      useSWR(key, fetcher, { shouldRetryOnError: (error) => { // We skip retrying if the API is returning 404: if (error.status === 404) return false return true } })

      Thanks to @ sairajchouhan for contributing!

      What's Changed

      • shouldRetryOnError accepts a function that can be used to conditionally stop retrying by @ sairajchouhan in #1816
      • build(deps-dev): bump next from 12.0.8 to 12.0.9 by @ dependabot in #1821
      • fix: useSWRInfinite revalidates with revalidateOnMount by @ koba04 in #1830

      New Contributors

      Full Changelog: 1.2.0...1.2.1

    • 1.2.1-experimental.0 - 2022-01-29
    • 1.2.0 - 2022-01-26
      Read more
    • 1.2.0-beta.1 - 2022-01-12
    • 1.2.0-beta.0 - 2021-12-28
    • 1.1.2 - 2021-12-26
    • 1.1.2-beta.1 - 2021-12-23
    • 1.1.2-beta.0 - 2021-12-15
    • 1.1.1 - 2021-12-10
    • 1.1.0 - 2021-11-30
    • 1.1.0-beta.12 - 2021-11-26
    • 1.1.0-beta.11 - 2021-11-24
    • 1.1.0-beta.10 - 2021-11-23
    • 1.1.0-beta.9 - 2021-11-11
    • 1.1.0-beta.8 - 2021-11-01
    • 1.1.0-beta.7 - 2021-11-01
    • 1.1.0-beta.6 - 2021-10-24
    • 1.1.0-beta.5 - 2021-10-09
    • 1.1.0-beta.4 - 2021-10-03
    • 1.1.0-beta.3 - 2021-10-01
    • 1.1.0-beta.2 - 2021-09-26
    • 1.1.0-beta.1 - 2021-09-22
    • 1.1.0-beta.0 - 2021-09-15
    • 1.0.1 - 2021-09-12
    from swr GitHub release notes
    Commit messages
    Package name: swr
    • 9b9771e 1.3.0
    • 6bb79f7 type: fix type error on SWRConfig (#1913)
    • 04b8302 build(deps): bump minimist from 1.2.5 to 1.2.6 (#1903)
    • 8993bab Update React 18 dependencies (#1824)
    • 39c3a98 test: fix an act warning (#1888)
    • 7cef58d feat: support functional optimisticData (#1861)
    • 1ae8cc6 bugfix: make suspense and revalidateIfStale work together (#1851)
    • f24c621 1.2.2
    • baaafc2 feat: Support `populateCache` as a function (#1818)
    • ef400ea test: add a test for the behavior of revalidateOnMount when the key has been changed (#1847)
    • f98da66 fix: reset stale unmountedRef in suspense (#1843)
    • 01e0594 refactor: revalidateIfStale has an effect on updates, not only mounting (#1837)
    • c63cafc 1.2.1
    • 922048e fix: useSWRInfinite revalidates with revalidateOnMount (#1830)
    • a4ab0c9 build(deps-dev): bump next from 12.0.8 to 12.0.9 (#1821)
    • 53dc100 feat: shouldErrorRetry accepts a function (#1816)
    • bfb9edc 1.2.0
    • e3dc48a fix: use the latest reference of fetcher with suspense mode (#1803)
    • fdd5c33 Add link to security email directly (#1795)
    • 7dfd890 chore: Move community health files to .github (#1794)
    • c9793ac chore: Clean up configurations (#1792)
    • 3a7dd3b test: use @ swc/jest (#1790)
    • 13a8870 test: remove flaky focus test case (#1793)
    • ce74819 chore: Update company name (#1791)

    Compare


    Note: You are seeing this because you or someone else with access to this repository has authorized Snyk to open upgrade PRs.

    For more information:

    ๐Ÿง View latest project report

    ๐Ÿ›  Adjust upgrade PR settings

    ๐Ÿ”• Ignore this dependency or unsubscribe from future upgrade PRs

    opened by clun 0
  • [Snyk] Security upgrade react-scripts from 4.0.3 to 5.0.0

    [Snyk] Security upgrade react-scripts from 4.0.3 to 5.0.0

    This PR was automatically created by Snyk using the credentials of a real user.


    Snyk has created this PR to fix one or more vulnerable packages in the `npm` dependencies of this project.

    Changes included in this PR

    • Changes to the following files to upgrade the vulnerable dependencies to a fixed version:
      • ui/package.json
      • ui/package-lock.json

    Vulnerabilities that will be fixed

    With an upgrade:

    Severity | Priority Score (*) | Issue | Breaking Change | Exploit Maturity :-------------------------:|-------------------------|:-------------------------|:-------------------------|:------------------------- medium severity | 713/1000
    Why? Proof of Concept exploit, Recently disclosed, Has a fix available, CVSS 6.4 | Prototype Pollution
    SNYK-JS-JSON5-3182856 | Yes | Proof of Concept

    (*) Note that the real score may have changed since the PR was raised.

    Commit messages
    Package name: react-scripts The new version differs by 69 commits.
    • 221e511 Publish
    • 6a3315b Update CONTRIBUTING.md
    • 5614c87 Add support for Tailwind (#11717)
    • 657739f chore(test): make all tests install with `npm ci` (#11723)
    • 20edab4 fix(webpackDevServer): disable overlay for warnings (#11413)
    • 69321b0 Remove cached lockfile (#11706)
    • 3afbbc0 Update all dependencies (#11624)
    • f5467d5 feat(eslint-config-react-app): support ESLint 8.x (#11375)
    • e8319da [WIP] Fix integration test teardown / cleanup and missing yarn installation (#11686)
    • c7627ce Update webpack and dev server (#11646)
    • f85b064 The default port used by `serve` has changed (#11619)
    • 544befe Update package.json (#11597)
    • 9d0369b Fix ESLint Babel preset resolution (#11547)
    • d7b23c8 test(create-react-app): assert for exit code (#10973)
    • 1465357 Prepare 5.0.0 alpha release
    • 3880ba6 Remove dependency pinning (#11474)
    • 8b9fbee Update CODEOWNERS
    • cacf590 Bump template dependency version (#11415)
    • 5cedfe4 Bump browserslist from 4.14.2 to 4.16.5 (#11476)
    • 50ea5ad allow CORS on webpack-dev-server (#11325)
    • 63bba07 Upgrade jest and related packages from 26.6.0 to 27.1.0 (#11338)
    • 960b21e Bump immer from 8.0.4 to 9.0.6 (#11364)
    • 134cd3c Resolve dependency issues in v5 alpha (#11294)
    • b45ae3c Update CONTRIBUTING.md

    See the full diff

    Check the changes in this PR to ensure they won't cause issues with your project.


    Note: You are seeing this because you or someone else with access to this repository has authorized Snyk to open fix PRs.

    For more information: ๐Ÿง View latest project report

    ๐Ÿ›  Adjust project settings

    ๐Ÿ“š Read more about Snyk's upgrade and patch logic


    Learn how to fix vulnerabilities with free interactive lessons:

    ๐Ÿฆ‰ Prototype Pollution

    opened by clun 0
  • [Snyk] Security upgrade com.datastax.astra:astra-spring-boot-starter from 0.3.4 to 0.4

    [Snyk] Security upgrade com.datastax.astra:astra-spring-boot-starter from 0.3.4 to 0.4

    This PR was automatically created by Snyk using the credentials of a real user.


    Snyk has created this PR to fix one or more vulnerable packages in the `maven` dependencies of this project.

    Changes included in this PR

    • Changes to the following files to upgrade the vulnerable dependencies to a fixed version:
      • backend/pom.xml

    Vulnerabilities that will be fixed

    With an upgrade:

    Severity | Priority Score (*) | Issue | Upgrade | Breaking Change | Exploit Maturity :-------------------------:|-------------------------|:-------------------------|:-------------------------|:-------------------------|:------------------------- medium severity | 499/1000
    Why? Has a fix available, CVSS 5.7 | Denial of Service (DoS)
    SNYK-JAVA-COMGOOGLEPROTOBUF-3040284 | com.datastax.astra:astra-spring-boot-starter:
    0.3.4 -> 0.4
    | No | No Known Exploit high severity | 661/1000
    Why? Recently disclosed, Has a fix available, CVSS 7.5 | Denial of Service (DoS)
    SNYK-JAVA-COMGOOGLEPROTOBUF-3167772 | com.datastax.astra:astra-spring-boot-starter:
    0.3.4 -> 0.4
    | No | No Known Exploit high severity | 661/1000
    Why? Recently disclosed, Has a fix available, CVSS 7.5 | Denial of Service (DoS)
    SNYK-JAVA-COMGOOGLEPROTOBUF-3167774 | com.datastax.astra:astra-spring-boot-starter:
    0.3.4 -> 0.4
    | No | No Known Exploit

    (*) Note that the real score may have changed since the PR was raised.

    Check the changes in this PR to ensure they won't cause issues with your project.


    Note: You are seeing this because you or someone else with access to this repository has authorized Snyk to open fix PRs.

    For more information: ๐Ÿง View latest project report

    ๐Ÿ›  Adjust project settings

    ๐Ÿ“š Read more about Snyk's upgrade and patch logic


    Learn how to fix vulnerabilities with free interactive lessons:

    ๐Ÿฆ‰ Denial of Service (DoS) ๐Ÿฆ‰ Denial of Service (DoS) ๐Ÿฆ‰ Denial of Service (DoS)

    opened by clun 0
  • [Snyk] Security upgrade com.datastax.astra:astra-spring-boot-starter from 0.3.4 to 0.4

    [Snyk] Security upgrade com.datastax.astra:astra-spring-boot-starter from 0.3.4 to 0.4

    Snyk has created this PR to fix one or more vulnerable packages in the `maven` dependencies of this project.

    Changes included in this PR

    • Changes to the following files to upgrade the vulnerable dependencies to a fixed version:
      • backend/pom.xml

    Vulnerabilities that will be fixed

    With an upgrade:

    Severity | Priority Score (*) | Issue | Upgrade | Breaking Change | Exploit Maturity :-------------------------:|-------------------------|:-------------------------|:-------------------------|:-------------------------|:------------------------- medium severity | 616/1000
    Why? Proof of Concept exploit, Has a fix available, CVSS 5.9 | Denial of Service (DoS)
    SNYK-JAVA-COMFASTERXMLJACKSONCORE-3038426 | com.datastax.astra:astra-spring-boot-starter:
    0.3.4 -> 0.4
    | No | Proof of Concept

    (*) Note that the real score may have changed since the PR was raised.

    Check the changes in this PR to ensure they won't cause issues with your project.


    Note: You are seeing this because you or someone else with access to this repository has authorized Snyk to open fix PRs.

    For more information: ๐Ÿง View latest project report

    ๐Ÿ›  Adjust project settings

    ๐Ÿ“š Read more about Snyk's upgrade and patch logic


    Learn how to fix vulnerabilities with free interactive lessons:

    ๐Ÿฆ‰ Denial of Service (DoS)

    opened by snyk-bot 0
  • [Snyk] Security upgrade react-scripts from 4.0.3 to 5.0.0

    [Snyk] Security upgrade react-scripts from 4.0.3 to 5.0.0

    This PR was automatically created by Snyk using the credentials of a real user.


    Snyk has created this PR to fix one or more vulnerable packages in the `npm` dependencies of this project.

    Changes included in this PR

    • Changes to the following files to upgrade the vulnerable dependencies to a fixed version:
      • ui/package.json
      • ui/package-lock.json

    Vulnerabilities that will be fixed

    With an upgrade:

    Severity | Priority Score (*) | Issue | Breaking Change | Exploit Maturity :-------------------------:|-------------------------|:-------------------------|:-------------------------|:------------------------- medium severity | 551/1000
    Why? Recently disclosed, Has a fix available, CVSS 5.3 | Regular Expression Denial of Service (ReDoS)
    SNYK-JS-LOADERUTILS-3042992 | Yes | No Known Exploit

    (*) Note that the real score may have changed since the PR was raised.

    Commit messages
    Package name: react-scripts The new version differs by 69 commits.
    • 221e511 Publish
    • 6a3315b Update CONTRIBUTING.md
    • 5614c87 Add support for Tailwind (#11717)
    • 657739f chore(test): make all tests install with `npm ci` (#11723)
    • 20edab4 fix(webpackDevServer): disable overlay for warnings (#11413)
    • 69321b0 Remove cached lockfile (#11706)
    • 3afbbc0 Update all dependencies (#11624)
    • f5467d5 feat(eslint-config-react-app): support ESLint 8.x (#11375)
    • e8319da [WIP] Fix integration test teardown / cleanup and missing yarn installation (#11686)
    • c7627ce Update webpack and dev server (#11646)
    • f85b064 The default port used by `serve` has changed (#11619)
    • 544befe Update package.json (#11597)
    • 9d0369b Fix ESLint Babel preset resolution (#11547)
    • d7b23c8 test(create-react-app): assert for exit code (#10973)
    • 1465357 Prepare 5.0.0 alpha release
    • 3880ba6 Remove dependency pinning (#11474)
    • 8b9fbee Update CODEOWNERS
    • cacf590 Bump template dependency version (#11415)
    • 5cedfe4 Bump browserslist from 4.14.2 to 4.16.5 (#11476)
    • 50ea5ad allow CORS on webpack-dev-server (#11325)
    • 63bba07 Upgrade jest and related packages from 26.6.0 to 27.1.0 (#11338)
    • 960b21e Bump immer from 8.0.4 to 9.0.6 (#11364)
    • 134cd3c Resolve dependency issues in v5 alpha (#11294)
    • b45ae3c Update CONTRIBUTING.md

    See the full diff

    Check the changes in this PR to ensure they won't cause issues with your project.


    Note: You are seeing this because you or someone else with access to this repository has authorized Snyk to open fix PRs.

    For more information: ๐Ÿง View latest project report

    ๐Ÿ›  Adjust project settings

    ๐Ÿ“š Read more about Snyk's upgrade and patch logic


    Learn how to fix vulnerabilities with free interactive lessons:

    ๐Ÿฆ‰ Regular Expression Denial of Service (ReDoS)

    opened by clun 0
  • [Snyk] Security upgrade org.springdoc:springdoc-openapi-ui from 1.6.10 to 1.6.13

    [Snyk] Security upgrade org.springdoc:springdoc-openapi-ui from 1.6.10 to 1.6.13

    Snyk has created this PR to fix one or more vulnerable packages in the `maven` dependencies of this project.

    Changes included in this PR

    • Changes to the following files to upgrade the vulnerable dependencies to a fixed version:
      • backend/pom.xml

    Vulnerabilities that will be fixed

    With an upgrade:

    Severity | Priority Score (*) | Issue | Upgrade | Breaking Change | Exploit Maturity :-------------------------:|-------------------------|:-------------------------|:-------------------------|:-------------------------|:------------------------- medium severity | 616/1000
    Why? Proof of Concept exploit, Has a fix available, CVSS 5.9 | Denial of Service (DoS)
    SNYK-JAVA-COMFASTERXMLJACKSONCORE-3038426 | org.springdoc:springdoc-openapi-ui:
    1.6.10 -> 1.6.13
    | No | Proof of Concept low severity | 506/1000
    Why? Proof of Concept exploit, Has a fix available, CVSS 3.7 | Stack-based Buffer Overflow
    SNYK-JAVA-ORGYAML-3016888 | org.springdoc:springdoc-openapi-ui:
    1.6.10 -> 1.6.13
    | No | Proof of Concept low severity | 471/1000
    Why? Recently disclosed, Has a fix available, CVSS 3.7 | Stack-based Buffer Overflow
    SNYK-JAVA-ORGYAML-3113851 | org.springdoc:springdoc-openapi-ui:
    1.6.10 -> 1.6.13
    | No | No Known Exploit

    (*) Note that the real score may have changed since the PR was raised.

    Check the changes in this PR to ensure they won't cause issues with your project.


    Note: You are seeing this because you or someone else with access to this repository has authorized Snyk to open fix PRs.

    For more information: ๐Ÿง View latest project report

    ๐Ÿ›  Adjust project settings

    ๐Ÿ“š Read more about Snyk's upgrade and patch logic


    Learn how to fix vulnerabilities with free interactive lessons:

    ๐Ÿฆ‰ Denial of Service (DoS)

    opened by snyk-bot 0
  • [Snyk] Security upgrade react-scripts from 4.0.3 to 5.0.0

    [Snyk] Security upgrade react-scripts from 4.0.3 to 5.0.0

    This PR was automatically created by Snyk using the credentials of a real user.


    Snyk has created this PR to fix one or more vulnerable packages in the `npm` dependencies of this project.

    Changes included in this PR

    • Changes to the following files to upgrade the vulnerable dependencies to a fixed version:
      • ui/package.json
      • ui/package-lock.json

    Vulnerabilities that will be fixed

    With an upgrade:

    Severity | Priority Score (*) | Issue | Breaking Change | Exploit Maturity :-------------------------:|-------------------------|:-------------------------|:-------------------------|:------------------------- medium severity | 551/1000
    Why? Recently disclosed, Has a fix available, CVSS 5.3 | Regular Expression Denial of Service (ReDoS)
    SNYK-JS-LOADERUTILS-3105943 | Yes | No Known Exploit

    (*) Note that the real score may have changed since the PR was raised.

    Commit messages
    Package name: react-scripts The new version differs by 69 commits.
    • 221e511 Publish
    • 6a3315b Update CONTRIBUTING.md
    • 5614c87 Add support for Tailwind (#11717)
    • 657739f chore(test): make all tests install with `npm ci` (#11723)
    • 20edab4 fix(webpackDevServer): disable overlay for warnings (#11413)
    • 69321b0 Remove cached lockfile (#11706)
    • 3afbbc0 Update all dependencies (#11624)
    • f5467d5 feat(eslint-config-react-app): support ESLint 8.x (#11375)
    • e8319da [WIP] Fix integration test teardown / cleanup and missing yarn installation (#11686)
    • c7627ce Update webpack and dev server (#11646)
    • f85b064 The default port used by `serve` has changed (#11619)
    • 544befe Update package.json (#11597)
    • 9d0369b Fix ESLint Babel preset resolution (#11547)
    • d7b23c8 test(create-react-app): assert for exit code (#10973)
    • 1465357 Prepare 5.0.0 alpha release
    • 3880ba6 Remove dependency pinning (#11474)
    • 8b9fbee Update CODEOWNERS
    • cacf590 Bump template dependency version (#11415)
    • 5cedfe4 Bump browserslist from 4.14.2 to 4.16.5 (#11476)
    • 50ea5ad allow CORS on webpack-dev-server (#11325)
    • 63bba07 Upgrade jest and related packages from 26.6.0 to 27.1.0 (#11338)
    • 960b21e Bump immer from 8.0.4 to 9.0.6 (#11364)
    • 134cd3c Resolve dependency issues in v5 alpha (#11294)
    • b45ae3c Update CONTRIBUTING.md

    See the full diff

    Check the changes in this PR to ensure they won't cause issues with your project.


    Note: You are seeing this because you or someone else with access to this repository has authorized Snyk to open fix PRs.

    For more information: ๐Ÿง View latest project report

    ๐Ÿ›  Adjust project settings

    ๐Ÿ“š Read more about Snyk's upgrade and patch logic


    Learn how to fix vulnerabilities with free interactive lessons:

    ๐Ÿฆ‰ Regular Expression Denial of Service (ReDoS)

    opened by clun 0
Owner
DataStax Developers
DataStax Developers
A developer oriented, headless ecommerce framework based on Spring + GraphQL + Angular.

GeekStore A developer oriented, headless ecommerce framework based on Spring + GraphQL + Angular. Headless means GeekStore only focus on the backend,

ๆณขๆณขๅพฎ่ฏพ 13 Jul 27, 2022
The main goal of the project is to reproduce a Database for a Ecommerce Web Application;

Web-Ecommerce Springboot Web Application The main goal of the project is to reproduce a Database for a Ecommerce Web Application; We have a Category-P

Joรฃo Figueredo 1 Feb 2, 2022
Spring Boot ECommerce Demo

springboot-ecommerce2 Things todo list Clone this repository: git clone https://github.com/hendisantika/springboot-ecommerce2.git Navigate to the fold

Hendi Santika 5 Aug 30, 2022
A modular, high performance, headless e-commerce(ecommerce) platform built with Java,Springboot, Vue.

What is Shopfly? Shopfly is modular, high performance, headless e-commerce(ecommerce) platform built with Java,Springboot, Vue. Architecture Shopfly i

Shopfly 31 Jul 17, 2022
A modular, high performance, headless e-commerce(ecommerce) platform built with Java,Springboot, Vue.

What is Shopfly? Shopfly is modular, high performance, headless e-commerce(ecommerce) platform built with Java,Springboot, Vue. Architecture Shopfly i

Shopfly 29 Apr 25, 2022
Construction System is a Ecommerce Full stack web development project.

Construction-system- Construction System is a Ecommerce Full stack web development project. Construction System is a project to ensure that there is a

Priya Kalal 1 Oct 17, 2021
A high availability shopping(ecommerce) system using SpringBoot, Spring Cloud, Eureka Server, Spring Cloud Gateway, resillience4j, Kafka, Redis and MySQL.

High-availability-shopping-system A high availability shopping(ecommerce) system using SpringBoot, Spring Cloud, Eureka Server, Spring Cloud Gateway,

LeiH 1 Oct 26, 2022
Ecommerce Application Tutorial (Source) - Mian Speaks

aExpress Ecommerce Application Tutorial (Source) - Mian Speaks How to setup Admin Panel Step 1: Download Source Code https://github.com/mianasadali1/a

Mian Asad Ali 15 Dec 17, 2022
This repo for kodlama.io java camp examples

JavaCampExamples This repo for kodlama.io java camp examples Bu repository'de ฤฐsteyen herkesin faydalanabilmesi ve รถrnek almasฤฑ iรงin Java Kapฤฑnda yapฤฑ

Salih DeฤŸirmenci 18 Mar 2, 2022
This is the src of Badlion client 3.0.0, The reason of this repo is badlion client's owner being p e d o

About Badlion Using Gradle instead of the shit mcp uwu Commands Run with random username gradle startGame Run with another username gradle startGame -

Pace 32 Dec 2, 2022
This is the src of Badlion client 3.0.0, The reason of this repo is badlion client's owner being p e d o

About Badlion Using Gradle instead of the shit mcp uwu Commands Run with random username gradle startGame Run with another username gradle startGame -

Pace 32 Dec 2, 2022
An 24x7 active repo for your contribution feel free to contribute:)

Hacktoberfest2021 Hacktoberfest is a month-long celebration of open source software sponsored by Digital Ocean, Intel, and DEV. Do push your code in a

Vishnudas 13 Sep 14, 2022
this repo is probs gonna die cuz idk very much java but i will update it when i learn how to actually DO SHIT

pastegod.cc shitty rename of zihasz client base rn but as i learn java i will paste-i mean add modules ;) (23/9/2021) why is everyone starring and wat

null 9 Dec 9, 2022
Small example repo for looking into log4j CVE-2021-44228

log4j CVE-2021-44228 Lame useless repo to look into log4j CVE-2021-44228. Setup The repository contains a .idea/ folder which is a IntelliJ IDEA proje

null 65 Dec 13, 2022
A base repo for creating RPC microservices in Java with gRPC, jOOQ, and Maven.

Wenower Core OSX local installation Install Protocol Buffer $ brew install protobuf Install Postgresql and joopc database and user $ brew install pos

Hamidreza Soleimani 1 Jan 9, 2022
This is the repo for ArrayV's Extra Sorts Pack

ArrayV Extra Sorts Pack This is the repo for ArrayV's Extra Sorts Pack. This repo houses many community-made sorts. It has a built-in link to ArrayV,

Josiah (Gaming32) Glosson 4 Jan 31, 2022
This repo holds all the basic code and documentation to the ev3 roboter of group 3 from WS21/22

e3base This repo holds all the basic code and documentation to the ev3 roboter of group 3 from WS21/22 Task Every group had to build a roboter using t

Jonas Deipenbrock 1 Feb 12, 2022
This repo contains all the materials for placement as well as Practical lab codes for all subjects and notes. For students graduating in 2023

UEMK_PLACEMENT_2023 This repo contains all the materials for placement as well as Practical lab codes for all subjects and notes. For students graduat

Shambashib Majumdar 8 Mar 5, 2022
This is a Meme repo for fixed & Cleaned source of 'Better'Bungeecord but its not realy better code is trash!

#Fucking cleaned by CryCodes Disclaimer: Based of MD_5's Bungeecord (Fork of "BetterBungee") | I am not the owner of the code This repo is just for fu

Rooks 3 Jan 2, 2022