Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

CC-34100 Add Quicksight client adapter #1

Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
13 changes: 13 additions & 0 deletions .editorconfig
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
; This file is for unifying the coding style for different editors and IDEs.
; More information at https://editorconfig.org
root = true

[*]
indent_style = space
indent_size = 4
end_of_line = lf
insert_final_newline = true
trim_trailing_whitespace = true

[*.bat]
end_of_line = crlf
36 changes: 36 additions & 0 deletions .gitattributes
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
# Define the line ending behavior of the different file extensions
# Set the default behavior, in case people don't have core.autocrlf set.
* text text=auto eol=lf

*.php diff=php

# Denote all files that are truly binary and should not be modified.
*.png binary
*.jpg binary
*.gif binary
*.jpeg binary
*.zip binary
*.phar binary
*.ttf binary
*.woff binary
*.woff2 binary
*.eot binary
*.ico binary
*.mo binary
*.pdf binary
*.xsd binary
*.exe binary

# Remove files for archives generated using `git archive`
dependency.json export-ignore
phpstan.json export-ignore
phpstan.neon export-ignore
psalm-report.json export-ignore linguist-generated=true
tooling.yml export-ignore
.coveralls.yml export-ignore
.travis.yml export-ignore
.editorconfig export-ignore
.gitattributes export-ignore
.gitignore export-ignore
.github/ export-ignore
architecture-baseline.json export-ignore
61 changes: 61 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,61 @@
name: CI

on:
push:
branches:
- 'master'
pull_request:
workflow_dispatch:

jobs:
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

is it a standard list of validations for eco modules? Don't we need any other ones?

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Tbh, I don't know. I guess, we can clarify this closer to the release phase.

validation:
name: Validation
runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v3

- name: Setup PHP
uses: shivammathur/setup-php@v2
with:
php-version: '8.2'
extensions: mbstring, intl, bcmath
coverage: none

- name: Composer Install
run: composer install --prefer-dist --no-interaction --profile

- name: Run validation
run: composer validate

- name: Syntax check
run: find ./src -path src -prune -o -type f -name '*.php' -print0 | xargs -0 -n1 -P4 php -l -n | (! grep -v "No syntax errors detected" )

- name: Run CodeStyle checks
run: composer cs-check

- name: PHPStan setup
run: composer stan-setup

- name: Run PHPStan
run: composer stan

lowest:
name: Prefer Lowest
runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v3

- name: Setup PHP
uses: shivammathur/setup-php@v2
with:
php-version: '8.1'
extensions: mbstring, intl, bcmath
coverage: none

- name: Composer Install
run: composer install --prefer-dist --no-interaction --profile

- name: Composer Update
run: composer update --prefer-lowest --prefer-dist --no-interaction --profile -vvv
36 changes: 36 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
# IDE
.idea/
.project/
nbproject/
.buildpath/
.settings/
*.sublime-*

# OS
.DS_Store
*.AppleDouble
*.AppleDB
*.AppleDesktop

# grunt stuff
.grunt
.sass-cache
/node_modules/

# tooling
vendor/
composer.lock
.phpunit.result.cache

# built client resources
src/*/Zed/*/Static/Public
src/*/Zed/*/Static/Assets/sprite

# Propel classes
src/*/Zed/*/Persistence/Propel/Base/*
src/*/Zed/*/Persistence/Propel/Map/*

# tests
tests/**/_generated/
tests/_output/*
!tests/_output/.gitkeep
4 changes: 4 additions & 0 deletions .license
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
/**
* MIT License
* Use of this software requires acceptance of the Evaluation License Agreement. See LICENSE file.
*/
3 changes: 3 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
# AmazonQuicksight Changelog

[Release Changelog](https://github.com/spryker-eco/amazon-quicksight/releases)
40 changes: 40 additions & 0 deletions LICENSE
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
SPRYKER SYSTEMS GMBH EVALUATION LICENSE AGREEMENT
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Don't we need a special License for eco modules?

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'll change it to MIT for now, but we'll need to clarify this in the future.


SPRYKER SYSTEMS GMBH, REGISTERED WITH THE COMMERCIAL REGISTER OF THE LOWER COURT OF HAMBURG UNDER HRB 134310
(“WE” OR ”SPRYKER”)GRANTS YOU (THE “LICENSEE”) THE RIGHT TO USE THE SOFTWARE (AS DEFINED BELOW)
UNDER THE PROVISIONS OF THIS EVALUATION LICENSE AGREEMENT (THE “AGREEMENT”).

The “Software” includes any software owned and distributed by Spryker under this Agreement. The Software
contains elements of open source components, to which different license terms apply respectively.
These open source components are needed to be installed separately.

Spryker grants to Licensee, during the 45-calendar-day period (the “Evaluation Period”) following the download of the Software,
the nontransferable, nonexclusive limited, free of charge license to permit Licensee’s employees to internally use the Software
to test and evaluate the Software in connection with potentially purchasing non-evaluation licenses to the Software.

Licensee shall not (i) use the Software to set up a productive live system, for development purposes or any other purposes apart
from evaluating the Software; (ii) copy any part of the Software except to make one copy for back-up purposes; (iii) distribute,
disclose, market, rent, lease, or transfer the Software or act as a service bureau with respect to the Software; (iv) export the
Software or install it in multiple locations; (v) disclose any confidential information provided by Spryker; (vi) modify or make
derivative works of the Software; or (vii) allow others to make or obtain copies of the Software.

THE SOFTWARE IS PROVIDED “AS-IS” AND WITHOUT WARRANTY OF ANY KIND. SPRYKER DISCLAIMS ALL WARRANTIES, EXPRESSED OR IMPLIED, INCLUDING
BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, TITLE, NONINFRINGEMENT, AND FITNESS FOR A PARTICULAR PURPOSE. SPRYKER WILL NOT
BE LIABLE FOR ANY DAMAGES ASSOCIATED WITH THE SOFTWARE, INCLUDING WITHOUT LIMITATION ORDINARY, INCIDENTAL, INDIRECT, OR CONSEQUENTIAL
DAMAGES OF ANY KIND, INCLUDING BUT NOT LIMITED TO DAMAGES RELATING TO LOST DATA OR LOST PROFITS, EVEN IF SPRYKER HAS BEEN ADVISED OF
THE POSSIBILITY OF SUCH DAMAGES.

Licensee's license to use the Software shall terminate on the earlier of (i) the expiration of the Evaluation Period, or (ii) the date
both parties enter into a definitive agreement for the provision by Spryker to Licensee of a non-evaluation license to the Software.
Upon termination of the license as provided above, Licensee shall promptly destroy the Software and any back-up copy of the Software
made during the Evaluation Period if Spryker and the Licensee have not agreed a non-evaluation license to the Software.

This Agreement shall be governed by the laws of Germany to the exclusion of IPR (International Law) and the United Nations Convention
on Contracts for the International Sale of Goods (CISG). The parties consent to the jurisdiction of the courts in Berlin (Germany).

This Agreement is not assignable or transferable by Licensee and any attempt to do so is null and void.

This Agreement constitutes the entire agreement between the parties concerning Licensee’s use of the Software. This Agreement supersedes
any prior verbal understanding between the parties and any Licensee purchase order or other ordering document, regardless of whether such
document is received by Spryker before or after execution of this Agreement. This Agreement may be amended only in a writing signed by
an authorized officer of Spryker.
15 changes: 15 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
# AmazonQuicksight Module
[![Latest Stable Version](https://poser.pugx.org/spryker-eco/amazon-quicksight/v/stable.svg)](https://packagist.org/packages/spryker-eco/amazon-quicksight)
[![Minimum PHP Version](https://img.shields.io/badge/php-%3E%3D%208.1-8892BF.svg)](https://php.net/)

AmazonQuicksight module allows the Spryker project to connect to the Amazon QuickSight service.

## Installation

```
composer require spryker-eco/amazon-quicksight
```

## Documentation

[Spryker Documentation](https://docs.spryker.com)
1 change: 1 addition & 0 deletions architecture-baseline.json
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
[]
14 changes: 14 additions & 0 deletions codeception.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
namespace: AmazonQuicksight
include:
- tests/SprykerEcoTest/Zed/AmazonQuicksight
paths:
tests: tests/
output: tests/_output/
data: tests/_data/
support: tests/_support/
envs: tests/_envs/
settings:
suite_class: \PHPUnit\Framework\TestSuite
colors: true
memory_limit: 1024M
log: true
45 changes: 45 additions & 0 deletions composer.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
{
"name": "spryker-eco/amazon-quicksight",
"type": "library",
"description": "AmazonQuicksight module",
"license": "proprietary",
"require": {
"aws/aws-sdk-php": "^3.90.0",
"php": ">=8.1",
"spryker/kernel": "^3.30.0",
"spryker/user": "^3.0.0"
},
"require-dev": {
"spryker/code-sniffer": "*",
"spryker/testify": "*"
},
"autoload": {
"psr-4": {
"SprykerEco\\": "src/SprykerEco/"
}
},
"autoload-dev": {
"psr-4": {
"SprykerEcoTest\\": "tests/SprykerEcoTest/"
}
},
"minimum-stability": "dev",
"prefer-stable": true,
"scripts": {
"cs-check": "phpcs -p -s --standard=vendor/spryker/code-sniffer/SprykerStrict/ruleset.xml src/ tests/",
"cs-fix": "phpcbf -p --standard=vendor/spryker/code-sniffer/SprykerStrict/ruleset.xml src/ tests/",
"stan": "phpstan analyse -c phpstan.neon -l 6 src/",
"stan-setup": "cp composer.json composer.backup && COMPOSER_MEMORY_LIMIT=-1 composer require --dev phpstan/phpstan:^0.12 && mv composer.backup composer.json"
},
"extra": {
"branch-alias": {
"dev-master": "1.0.x-dev"
}
},
"config": {
"sort-packages": true,
"allow-plugins": {
"dealerdirect/phpcodesniffer-composer-installer": true
}
}
}
6 changes: 6 additions & 0 deletions phpstan.neon
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
parameters:
level: 8
paths:
- src/
excludePaths:
- src/SprykerEco/Zed/AmazonQuicksight/Persistence/Propel/Abstract*.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,64 @@
<?php

/**
* MIT License
* Use of this software requires acceptance of the Evaluation License Agreement. See LICENSE file.
*/

namespace SprykerEco\Shared\AmazonQuicksight;

/**
* Declares global environment configuration keys. Do not use it for other class constants.
*/
interface AmazonQuicksightConstants
{
/**
* Specification:
* - The ID for the AWS account that contains your Amazon QuickSight account.
*
* @api
*
* @var string
*/
public const AWS_ACCOUNT_ID = 'AMAZON_QUICKSIGHT:AWS_ACCOUNT_ID';

/**
* Specification:
* - The AWS region that you use for the Amazon QuickSight account.
*
* @api
*
* @var string
*/
public const AWS_REGION = 'AMAZON_QUICKSIGHT:AWS_REGION';

/**
* Specification:
* - AWS access key ID.
*
* @api
*
* @var string
*/
public const AWS_CREDENTIALS_KEY = 'AMAZON_QUICKSIGHT:AWS_CREDENTIALS_KEY';

/**
* Specification:
* - AWS access key secret.
*
* @api
*
* @var string
*/
public const AWS_CREDENTIALS_SECRET = 'AMAZON_QUICKSIGHT:AWS_CREDENTIALS_SECRET';

/**
* Specification:
* - AWS security token.
*
* @api
*
* @var string
*/
public const AWS_CREDENTIALS_TOKEN = 'AMAZON_QUICKSIGHT:AWS_CREDENTIALS_TOKEN';
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
<?xml version="1.0"?>
<transfers xmlns="spryker:transfer-01" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="spryker:transfer-01 http://static.spryker.com/transfer-01.xsd">

<transfer name="QuicksightUser" strict="true">
<property name="idQuicksightUser" type="int"/>
<property name="fkUser" type="int"/>
<property name="role" type="string"/>
<property name="arn" type="string"/>
<property name="principalId" type="string"/>
<property name="uuid" type="string"/>
<property name="createdAt" type="string"/>
<property name="updatedAt" type="string"/>
</transfer>

</transfers>
Loading
Loading