Commit 89403af3 authored by ethiraj krishnamanaidu's avatar ethiraj krishnamanaidu
Browse files

Initial commit

parents
Pipeline #1219 failed with stages
in 6 minutes and 1 second
{
"info": {
"_postman_id": "2e66008f-a221-4746-8dc9-7aa3492935ae",
"name": "Auth",
"description": "Exploring Authorization API in OSDU. This collection allows doing the following requests:\n\n1) Getting access and id tokens (aihtorization code flow)\n2) Discover OpenID Connect configuration\n3) Refreshing tokens\n4) Making secured User Info request (to validate the token)",
"schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json"
},
"item": [
{
"name": "1. OpenID Connect Discovery",
"event": [
{
"listen": "test",
"script": {
"id": "62e187eb-3969-4cad-848f-664393d8753f",
"exec": [
"var data = JSON.parse(responseBody)",
"pm.environment.set(\"auth_authorize_url\", data.authorization_endpoint);",
"pm.environment.set(\"auth_token_url\", data.token_endpoint);",
"pm.environment.set(\"auth_userinfo_url\", data.userinfo_endpoint);"
],
"type": "text/javascript"
}
}
],
"request": {
"auth": {
"type": "noauth"
},
"method": "GET",
"header": [],
"url": {
"raw": "{{auth_discovery_url}}/{{auth_well_known_oic}}",
"host": [
"{{auth_discovery_url}}"
],
"path": [
"{{auth_well_known_oic}}"
]
}
},
"response": []
},
{
"name": "2. Refresh Tokens",
"event": [
{
"listen": "test",
"script": {
"id": "dcc95883-8398-4463-90ce-d277d0bd497a",
"exec": [
"// this snippet extracts the new access and id tokens",
"// and puts them to environment variables",
"var data = JSON.parse(responseBody)",
"pm.environment.set(\"access_token\", data.access_token);",
"pm.environment.set(\"id_token\", data.id_token);",
"// Uncomment if server returns a new refresh_token,",
"// otherwise comment out to prevent overwriting it with null",
"// pm.environment.set(\"refresh_token\", data.refresh_token);"
],
"type": "text/javascript"
}
}
],
"request": {
"auth": {
"type": "noauth"
},
"method": "POST",
"header": [
{
"key": "Content-Type",
"name": "Content-Type",
"type": "text",
"value": "application/x-www-form-urlencoded"
}
],
"body": {
"mode": "urlencoded",
"urlencoded": [
{
"key": "grant_type",
"value": "refresh_token",
"type": "text"
},
{
"key": "refresh_token",
"value": "{{refresh_token}}",
"type": "text"
},
{
"key": "client_id",
"value": "{{client_id}}",
"type": "text"
},
{
"key": "client_secret",
"value": "{{client_secret}}",
"type": "text"
}
]
},
"url": {
"raw": "{{auth_token_url}}",
"host": [
"{{auth_token_url}}"
]
},
"description": "Change the refresh_token parameter to a valid one before requesting a new access_token. Discard the old refresh_token after using it."
},
"response": []
},
{
"name": "3. Get Schemas (Secured)",
"request": {
"method": "GET",
"header": [
{
"key": "Authorization",
"value": "Bearer {{id_token}}",
"type": "text"
},
{
"key": "data-partition-id",
"value": "{{data-partition}}",
"type": "text"
},
{
"key": "Content-Type",
"value": "text/plain",
"type": "text"
}
],
"url": {
"raw": "{{storage_base_url}}/query/kinds",
"host": [
"{{storage_base_url}}"
],
"path": [
"query",
"kinds"
]
}
},
"response": []
}
],
"auth": {
"type": "oauth2",
"oauth2": [
{
"key": "accessToken",
"value": "",
"type": "string"
},
{
"key": "tokenType",
"value": "Bearer",
"type": "string"
},
{
"key": "addTokenTo",
"value": "header",
"type": "string"
}
]
},
"event": [
{
"listen": "prerequest",
"script": {
"id": "14e8461e-a6e4-4b25-a695-38876ce42a78",
"type": "text/javascript",
"exec": [
""
]
}
},
{
"listen": "test",
"script": {
"id": "3e7c2d3c-fb1c-4a98-8a94-8643ff55d55f",
"type": "text/javascript",
"exec": [
""
]
}
}
],
"protocolProfileBehavior": {}
}
\ No newline at end of file
{
"id": "b6131475-f982-43d2-9848-b2c9ffde79e2",
"name": "Data loading",
"values": [
{
"key": "access_token",
"value": "",
"enabled": true
},
{
"key": "id_token",
"value": "",
"enabled": true
},
{
"key": "refresh_token",
"value": "",
"enabled": true
},
{
"key": "client_id",
"value": "",
"enabled": true
},
{
"key": "client_secret",
"value": "",
"enabled": true
},
{
"key": "scopes",
"value": "openid profile email",
"enabled": true
},
{
"key": "auth_discovery_url",
"value": "https://accounts.google.com",
"enabled": true
},
{
"key": "auth_well_known_oic",
"value": ".well-known/openid-configuration",
"enabled": true
},
{
"key": "auth_userinfo_url",
"value": "https://openidconnect.googleapis.com/v1/userinfo",
"enabled": true
},
{
"key": "auth_authorize_url",
"value": "https://accounts.google.com/o/oauth2/v2/auth",
"enabled": true
},
{
"key": "auth_token_url",
"value": "https://oauth2.googleapis.com/token",
"enabled": true
},
{
"key": "auth_callback_url",
"value": "http://localhost:8080/auth/callback",
"enabled": true
},
{
"key": "userinfo_url",
"value": "https://openidconnect.googleapis.com/v1/userinfo",
"enabled": true
},
{
"key": "search_api_url",
"value": "https://os-search-dot-opendes.appspot.com/api/search/v2/query",
"enabled": true
},
{
"key": "storage_base_url",
"value": "https://os-storage-dot-opendes.appspot.com/api/storage/v2",
"enabled": true
},
{
"key": "data-partition",
"value": "opendes",
"enabled": true
},
{
"key": "legal_tag",
"value": "opendes-public-usa-dataset-1",
"enabled": true
},
{
"key": "acl_viewer",
"value": "data.default.viewers@opendes.p4d.cloud.slb-ds.com",
"enabled": true
},
{
"key": "acl_owner",
"value": "data.default.owners@opendes.p4d.cloud.slb-ds.com",
"enabled": true
},
{
"key": "limit",
"value": "300",
"enabled": true
}
],
"_postman_variable_scope": "environment",
"_postman_exported_at": "2020-03-19T06:18:44.588Z",
"_postman_exported_using": "Postman/7.20.1"
}
\ No newline at end of file
This diff is collapsed.
.vscode
.idea
.venv
__pycache__
test/*postman_environment*
!test/*template*postman_environment*
[pycodestyle]
max_line_length = 100
\ No newline at end of file
[MASTER]
# Specify a configuration file.
#rcfile=.pylintrc
# Profiled execution.
profile=no
# Add <file or directory> to the black list. It should be a base name, not a
# path. You may set this option multiple times.
ignore=.git, .venv, .idea, CVS
# Pickle collected data for later comparisons.
persistent=yes
# When enabled, pylint would attempt to guess common misconfiguration and emit
# user-friendly hints instead of false-positive error messages.
suggestion-mode=yes
# Allow loading of arbitrary C extensions. Extensions are imported into the
# active Python interpreter and may run arbitrary code.
unsafe-load-any-extension=no
# List of plugins (as comma separated values of python modules names) to load,
# usually to register additional checkers.
load-plugins=pylint_quotes
[MESSAGES CONTROL]
# Enable the message, report, category or checker with the given id(s). You can
# either give multiple identifier separated by comma (,) or put this option
# multiple time.
enable=c-extension-no-member
# Disable the message, report, category or checker with the given id(s). You
# can either give multiple identifier separated by comma (,) or put this option
# multiple time.
disable=no-member, no-self-use
[REPORTS]
# Python expression which should return a note less than 10 (10 is the highest
# note). You have access to the variables errors warning, statement which
# respectively contain the number of errors / warnings messages and the total
# number of statements analyzed. This is used by the global evaluation report
# (R0004).
evaluation=10.0 - ((float(5 * error + warning + refactor + convention) / statement) * 10)
# Set the output format. Available formats are text, parseable, colorized, msvs
# (visual studio) and html
output-format=text
# Include message's id in output
include-ids=yes
# Tells whether to display a full report or only the messages
reports=yes
# Put messages in a separate file for each module / package specified on the
# command line instead of printing them on stdout. Reports (if any) will be
# written in a file name "pylint_global.[txt|html]".
files-output=no
# Activate the evaluation score.
score=yes
[REFACTORING]
# Maximum number of nested blocks for function / method body
max-nested-blocks=5
[VARIABLES]
# Tells whether we should check for unused import in __init__ files.
init-import=yes
# A regular expression matching the name of dummy variables (i.e. expectedly
# not used).
dummy-variables-rgx=(_+[a-zA-Z0-9]*?$)|dummy
# List of additional names supposed to be defined in builtins. Remember that
# you should avoid to define new builtins when possible.
additional-builtins=
# List of strings which can identify a callback function by name. A callback
# name must start or end with one of those strings.
callbacks=cb_,_cb
# List of qualified module names which can have objects that can redefine
# builtins.
redefining-builtins-modules=six.moves,future.builtins
[CLASSES]
# List of method names used to declare (i.e. assign) instance attributes.
defining-attr-methods=__init__,__new__,setUp
# List of valid names for the first argument in a class method.
valid-classmethod-first-arg=cls
# List of valid names for the first argument in a metaclass class method.
valid-metaclass-classmethod-first-arg=cls
# List of member names, which should be excluded from the protected access
# warning.
exclude-protected=_asdict,_fields,_replace,_source,_make
[BASIC]
# Required attributes for module, separated by a comma
required-attributes=
# Regular expression which should only match correct module names
module-rgx=(([a-z_][a-z0-9_]*)|([A-Z][a-zA-Z0-9]+))$
# Regular expression which should only match correct module level names
const-rgx=
# Regular expression which should only match correct class names
class-rgx=[A-Z_][a-zA-Z0-9]+$
# Regular expression which should only match correct function names
function-rgx=[a-z_][a-z0-9_]{2,60}$
# Regular expression which should only match correct method names
method-rgx=[a-z_][a-z0-9_]{2,60}$
# Regular expression which should only match correct instance attribute names
attr-rgx=[a-z_][a-z0-9_]{2,30}$
# Regular expression which should only match correct argument names
argument-rgx=[a-z_][a-z0-9_]{2,30}$
# Regular expression which should only match correct variable names
variable-rgx=[a-z_][a-z0-9_]{2,30}$
# Regular expression which should only match correct list comprehension /
# generator expression variable names
inlinevar-rgx=[A-Za-z_][A-Za-z0-9_]*$
# Good variable names which should always be accepted, separated by a comma
good-names=e,f,i,j,k,ex,Run,_
# Bad variable names which should always be refused, separated by a comma
bad-names=foo,bar,baz,toto,tutu,tata
# Regular expression which should only match functions or classes name which do
# not require a docstring
no-docstring-rgx=__.*__
[FORMAT]
# Maximum number of characters on a single line.
max-line-length=100
# Maximum number of lines in a module
max-module-lines=1000
# String used as indentation unit. This is usually " " (4 spaces) or "\t" (1
# tab).
indent-string=' '
# Set the linting for string quotes
string-quote=double
triple-quote=double
docstring-quote=double
[LOGGING]
# Logging modules to check that the string format arguments are in logging
# function parameter format.
logging-modules=logging
# Format style used to check logging format string. `old` means using %
# formatting, `new` is for `{}` formatting,and `fstr` is for f-strings.
logging-format-style=fstr
[MISCELLANEOUS]
# List of note tags to take in consideration, separated by a comma.
notes=FIXME,XXX,TODO
[SIMILARITIES]
# Minimum lines number of a similarity.
min-similarity-lines=4
# Ignore comments when computing similarities.
ignore-comments=yes
# Ignore docstrings when computing similarities.
ignore-docstrings=yes
# Ignore imports when computing similarities.
ignore-imports=no
[DESIGN]
# Maximum number of arguments for function / method
max-args=7
# Argument names that match this expression will be ignored. Default to name
# with leading underscore
ignored-argument-names=_.*
# Maximum number of locals for function / method body
max-locals=15
# Maximum number of return / yield for function / method body
max-returns=6
# Maximum number of branch for function / method body
max-branches=12
# Maximum number of statements in function / method body
max-statements=50
# Maximum number of parents for a class (see R0901).
max-parents=7
# Maximum number of attributes for a class (see R0902).
max-attributes=7
# Minimum number of public methods for a class (see R0903).
min-public-methods=0
# Maximum number of public methods for a class (see R0904).
max-public-methods=20
# Maximum number of boolean expressions in a if statement
max-bool-expr=5
[IMPORTS]
# Deprecated modules which should not be used, separated by a comma
deprecated-modules=regsub,TERMIOS,Bastion,rexec
# Create a graph of every (i.e. internal and external) dependencies in the
# given file (report RP0402 must not be disabled)
import-graph=
# Create a graph of external dependencies in the given file (report RP0402 must
# not be disabled)
ext-import-graph=
# Create a graph of internal dependencies in the given file (report RP0402 must
# not be disabled)
int-import-graph=
# Force import order to recognize a module as part of the standard
# compatibility libraries.
known-standard-library=
# Force import order to recognize a module as part of a third party library.
known-third-party=enchant
# Analyse import fallback blocks. This can be used to support both Python 2 and
# 3 compatible code, which means that the block might have code that exists
# only in one or another interpreter, leading to false positives when analysed.
analyse-fallback-blocks=no
[EXCEPTIONS]
# Exceptions that will emit a warning when being caught. Defaults to
# "BaseException, Exception".
overgeneral-exceptions=BaseException, Exception
# Best practices
## Logging
Code should be well logged and here is some tips that can help you:
* Use logger instead of print.
* Log all exceptions.
* Include in response exception the HTTP code and the message.
* Look at your if statements. Sometimes they silence exceptions.
* Include the key if you log KeyError.
* If some exceptions appears because of wrong user input, you should
provide information what was wrong.
## Typing
You should define types of arguments for your functions and response
type. Use `-> None` if you function does not returns any value.
## Documentation
Every function class and module should be documented. To verify your
documentation use `pydoc`.
## Readme files
If you change functionality you should be sure that information about
that functionality in readme files up to date.
\ No newline at end of file
# Configuration
## Python environment
Check if you have Python 3.7 or later installed with
~~~