Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
65 commits
Select commit Hold shift + click to select a range
464c77f
feat: implement basic proto file
OmegaCreations Jun 8, 2025
268a99a
feat: Duplex stream with specific payload message events.
OmegaCreations Jun 10, 2025
7b7888a
feat: Duplex stream with specific payload message events.
OmegaCreations Jun 10, 2025
6373548
feat: Create typescript interfaces for duplex stream message model
OmegaCreations Jun 10, 2025
255e567
feat: Add description to typescript interfaces
OmegaCreations Jun 10, 2025
7edca58
feat: implement serialization and deserialization methods
OmegaCreations Jun 10, 2025
0485204
feat: add package dependencies and write unit tests for serialization…
OmegaCreations Jun 10, 2025
58666d5
fix: fixed oneof variable naming
OmegaCreations Jun 10, 2025
0118271
feat: Duplex stream with specific payload message events.
OmegaCreations Jun 10, 2025
7c5d552
feat: Create typescript interfaces for duplex stream message model
OmegaCreations Jun 10, 2025
4b18459
feat: implement serialization and deserialization methods
OmegaCreations Jun 10, 2025
dba904c
feat: add package dependencies and write unit tests for serialization…
OmegaCreations Jun 10, 2025
273b8e2
feat: Create grpc wrapper with basic connection manager and central s…
OmegaCreations Jun 10, 2025
6467c55
fix: fix grpc addresses to properly connect both client and central s…
OmegaCreations Jun 10, 2025
1a86d49
fix: refactor comments
OmegaCreations Jun 11, 2025
bec195c
fix: change central system class name to avoid conflicts with central…
OmegaCreations Jun 11, 2025
c6a3f01
feat: implement Connection class and a map storing all receiving and …
OmegaCreations Jun 11, 2025
fb12e55
feat: implement replacing new token for client from central system
OmegaCreations Jun 11, 2025
63faee3
feat: implement token revokation by changing connection status
OmegaCreations Jun 11, 2025
456bf84
fix: remove unnecessary params
OmegaCreations Jun 11, 2025
93c3a51
fix: fix enum naming
OmegaCreations Jun 17, 2025
ff0faf0
fix: fix proto types order based on Bookkeeping standards
OmegaCreations Jun 17, 2025
d207f78
Merge branch 'feature/TKN/OGUI-1702/basic-proto-file' of github.com:A…
OmegaCreations Jun 17, 2025
fb6c39c
fix: add copyright banner
OmegaCreations Jun 17, 2025
8106fe1
Merge branch 'feature/TKN/OGUI-1702/basic-proto-file' of github.com:A…
OmegaCreations Jun 17, 2025
72042c8
fix: add copyright banner and change enum naming convention
OmegaCreations Jun 17, 2025
d762f9f
Merge branch 'feature/TKN/OGUI-1703/basic-typescript-interfaces' of g…
OmegaCreations Jun 17, 2025
b70cf9e
fix: fix serialization comments and tests
OmegaCreations Jun 17, 2025
aff4c59
Merge branch 'feature/TKN/OGUI-1704/data-serialization-utils' of gith…
OmegaCreations Jun 17, 2025
9de3ce5
Merge branch 'dev' into feature/TKN/OGUI-1703/basic-typescript-interf…
graduta Jun 18, 2025
bdba63d
feat: add description comments and implement .listen() instead of aut…
OmegaCreations Jul 8, 2025
326eea5
fix: change enum values to numbers
OmegaCreations Jul 8, 2025
4011499
Merge branch 'feature/TKN/OGUI-1703/basic-typescript-interfaces' of g…
OmegaCreations Jul 8, 2025
5857652
fix: move test directory
OmegaCreations Jul 8, 2025
54447ea
feat: add webui logger instead of console logs and fix paths
OmegaCreations Jul 8, 2025
af429ce
Merge branch 'feature/TKN/OGUI-1703/basic-typescript-interfaces' of g…
OmegaCreations Jul 8, 2025
9db612e
feat: write tests for central system and connection manager
OmegaCreations Jul 9, 2025
ec193ca
Merge branch 'feature/TKN/OGUI-1705/client-central-basic-stream' of g…
OmegaCreations Jul 9, 2025
d0f4dad
feat: muldularize connection management. Add project building.
OmegaCreations Jul 10, 2025
b4a0bf9
fix: fix connection and remove exponential backoff for simplified ver…
OmegaCreations Jul 10, 2025
8d9c89a
fix: test setup fixes
OmegaCreations Jul 20, 2025
1081941
Merge branch 'feature/TKN/OGUI-1708/basic-connection-class' of github…
OmegaCreations Jul 20, 2025
b6695a4
fix: fix tscofing for js builds and typescript files/tests runtime
OmegaCreations Jul 28, 2025
e79215c
feat: refactor code for command design pattern
OmegaCreations Aug 4, 2025
90d713d
feat: unit tests for token revokation
OmegaCreations Aug 4, 2025
e079438
feat: implement token revokation logic and testing
OmegaCreations Aug 5, 2025
5527944
feat: implement connection direction info inside of payload
OmegaCreations Aug 5, 2025
090da6b
fix: fix tests
OmegaCreations Aug 7, 2025
fd0e1dd
feat: implement command for new token from central system
OmegaCreations Aug 7, 2025
5965abe
feat: add missing comments, banners and tests
OmegaCreations Aug 7, 2025
4562762
fix: fixed banner processing. removed console logs
OmegaCreations Aug 7, 2025
f41266f
Merge branch 'dev' of github.com:AliceO2Group/WebUi into feature/TKN/…
OmegaCreations Nov 6, 2025
37a8021
fix: remove duplicates
OmegaCreations Nov 6, 2025
feeb637
fix: unit tests
OmegaCreations Nov 6, 2025
44f58e4
fix: move .gitignore to parent .gitignore
OmegaCreations Nov 6, 2025
c87f1f1
fix: default wrapper port changed to 4100
OmegaCreations Nov 6, 2025
b2f24c6
fix: change private variables naming
OmegaCreations Nov 6, 2025
d043717
fix: rename directories to start with small letters
OmegaCreations Nov 6, 2025
48c51dc
fix: fix imports and add breaklines after banners
OmegaCreations Nov 6, 2025
9ae5c9b
feat: inform about central system address on connection
OmegaCreations Nov 6, 2025
75a9f14
fix: tests testing initializtion of object shouuld have object creati…
OmegaCreations Nov 6, 2025
f6cb712
feat: implement missing descriptions
OmegaCreations Nov 6, 2025
d0c57bf
fix: make sure that proto file enums have number 0 with default, unde…
OmegaCreations Nov 6, 2025
3c82edc
feat: implement eslint and fix its errors
OmegaCreations Nov 6, 2025
28ef2a6
Merge branch 'dev' into feature/TKN/OGUI-1710/handle-newly-generated-…
OmegaCreations Nov 13, 2025
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
5 changes: 4 additions & 1 deletion Tokenization/.gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -2,4 +2,7 @@
webapp/node_modules
webapp/.react-router
webapp/build
backend/node_modules
backend/node_modules
backend/wrapper/dist/
backend/wrapper/node_modules/
backend/wrapper/src/run_tests/
9 changes: 8 additions & 1 deletion Tokenization/backend/proto/wrapper.proto
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,8 @@
* In applying this license CERN does not waive the privileges and immunities
* granted to it by virtue of its status as an Intergovernmental Organization
* or submit itself to any jurisdiction.
*/
*/

syntax = "proto3";

package webui.tokenization;
Expand Down Expand Up @@ -55,6 +56,9 @@ message Payload {
// ======================================

enum MessageEvent {
// Unspecified event type
MESSAGE_EVENT_UNSPECIFIED = 0;

// Default value, represents an empty event
MESSAGE_EVENT_EMPTY = 0;

Expand All @@ -66,6 +70,9 @@ enum MessageEvent {
}

enum ConnectionDirection {
// Unspecified direction
UNSPECIFIED = 0;

// Direction from client to server
SENDING = 1;

Expand Down
3 changes: 0 additions & 3 deletions Tokenization/backend/wrapper/.gitignore

This file was deleted.

7 changes: 7 additions & 0 deletions Tokenization/backend/wrapper/.prettierrc
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
{
"singleQuote": true,
"semi": true,
"tabWidth": 2,
"trailingComma": "es5",
"printWidth": 145
}
227 changes: 227 additions & 0 deletions Tokenization/backend/wrapper/eslint.config.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,227 @@
/**
* @license
* Copyright 2019-2020 CERN and copyright holders of ALICE O2.
* See http://alice-o2.web.cern.ch/copyright for details of the copyright holders.
* All rights not expressly granted are reserved.
*
* This software is distributed under the terms of the GNU General Public
* License v3 (GPL Version 3), copied verbatim in the file "COPYING".
*
* In applying this license CERN does not waive the privileges and immunities
* granted to it by virtue of its status as an Intergovernmental Organization
* or submit itself to any jurisdiction.
*/

const globals = require('globals');
const pluginJs = require('@eslint/js');
const tseslint = require('typescript-eslint');
const jsdoc = require('eslint-plugin-jsdoc');
const stylisticTs = require('@stylistic/eslint-plugin-ts');
const stylisticJs = require('@stylistic/eslint-plugin-js');
const eslintConfigPrettier = require('eslint-config-prettier');

const licenseHeader = `/**
* @license
* Copyright 2019-2020 CERN and copyright holders of ALICE O2.
* See http://alice-o2.web.cern.ch/copyright for details of the copyright holders.
* All rights not expressly granted are reserved.
*
* This software is distributed under the terms of the GNU General Public
* License v3 (GPL Version 3), copied verbatim in the file "COPYING".
*
* In applying this license CERN does not waive the privileges and immunities
* granted to it by virtue of its status as an Intergovernmental Organization
* or submit itself to any jurisdiction.
*/`;

const licenseHeaderRule = {
meta: {
type: 'layout',
docs: {
description: 'Require license header at the top of files',
category: 'Stylistic Issues',
},
fixable: 'code',
schema: [],
},
create(context) {
return {
Program(node) {
const sourceCode = context.getSourceCode();
const text = sourceCode.getText();

if (text.includes('@license')) {
return;
}

context.report({
node,
message: 'Missing license header',
fix(fixer) {
return fixer.insertTextBefore(node, licenseHeader + '\n\n');
},
});
},
};
},
};

module.exports = [
{
ignores: [
'**/test/',
'**/tests/',
'**/node_modules/',
'**/build/',
'**/dist/',
'**/database/data/',
'**/lib/public/assets/',
'**/cpp-api-client/',
'**/tmp/',
'**/.nyc_output/',
'**/jest.config.ts',
'**/package*.json',
'**/tsconfig*.json',
'**/eslint.config.js',
'**/*d.ts',
],
},

pluginJs.configs.recommended,
...tseslint.configs.recommended,

{
files: ['**/*.{js,ts}'],
plugins: {
'@typescript-eslint': tseslint.plugin,
jsdoc: jsdoc,
'@stylistic/ts': stylisticTs,
'@stylistic/js': stylisticJs,
custom: {
rules: {
'license-header': licenseHeaderRule,
},
},
},

languageOptions: {
parser: tseslint.parser,
parserOptions: {
ecmaVersion: 'latest',
sourceType: 'commonjs',
project: ['./tsconfig.json'],
},
globals: {
...globals.node,
...globals.es2021,
...globals.commonjs,
},
},

settings: {
jsdoc: {
mode: 'typescript',
tagNamePreference: {
returns: 'return',
},
},
},

rules: {
// === CUSTOM RULES ===
'custom/license-header': 'error',

// === TYPESCRIPT SPECIFIC RULES ===
'@typescript-eslint/no-unused-vars': [
'error',
{
argsIgnorePattern: '^_',
varsIgnorePattern: '^_',
ignoreRestSiblings: true,
},
],
'@typescript-eslint/no-explicit-any': 'warn',
'@typescript-eslint/prefer-nullish-coalescing': 'error',
'@typescript-eslint/prefer-optional-chain': 'error',
'@typescript-eslint/no-non-null-assertion': 'warn',
'@typescript-eslint/consistent-type-imports': 'error',

// === GENERAL CODE QUALITY ===
'arrow-body-style': ['error', 'as-needed'],
curly: 'error',
'no-console': 'error',
'no-implicit-coercion': 'error',
'no-return-assign': 'error',
'no-var': 'error',
'one-var': ['error', 'never'],
'prefer-const': 'error',
'prefer-destructuring': 'warn',
'prefer-template': 'error',
radix: 'error',

// === COMMENTS AND DOCUMENTATION ===
'capitalized-comments': ['error', 'always'],
'jsdoc/require-description': 'error',
'jsdoc/require-returns': 'off',
'jsdoc/require-jsdoc': [
'error',
{
require: {
FunctionDeclaration: true,
MethodDefinition: true,
ClassDeclaration: true,
ArrowFunctionExpression: false,
FunctionExpression: true,
},
},
],

// === TYPESCRIPT STYLISTIC RULES ===
'@stylistic/ts/comma-dangle': ['error', 'always-multiline'],
'@stylistic/ts/comma-spacing': ['error', { before: false, after: true }],
'@stylistic/ts/indent': ['error', 2],
'@stylistic/ts/quotes': ['error', 'single', { avoidEscape: true }],
'@stylistic/ts/semi': 'error',
'@stylistic/ts/space-before-blocks': 'error',
'@stylistic/ts/space-infix-ops': 'error',
'@stylistic/ts/object-curly-spacing': ['error', 'always'],
'@stylistic/ts/keyword-spacing': 'error',
'@stylistic/ts/type-annotation-spacing': 'error',
'@stylistic/ts/member-delimiter-style': 'error',

// === JAVASCRIPT STYLISTIC RULES ===
'@stylistic/js/array-bracket-spacing': ['error', 'never'],
'@stylistic/js/brace-style': ['error', '1tbs'],
'@stylistic/js/no-trailing-spaces': 'error',
'@stylistic/js/eol-last': ['error', 'always'],
'@stylistic/js/max-len': ['error', { code: 145 }],
'@stylistic/js/no-multiple-empty-lines': ['error', { max: 1, maxEOF: 0 }],

// === DISABLED RULES ===
'no-magic-numbers': 'off',
'sort-keys': 'off',
'sort-imports': 'off',
'sort-vars': 'off',
},
},
{
files: ['**/*.test.{js,ts}', '**/test/**/*.{js,ts}'],
languageOptions: {
globals: {
...globals.jest,

describe: 'readonly',
it: 'readonly',
expect: 'readonly',
beforeEach: 'readonly',
afterEach: 'readonly',
},
},

rules: {
'no-console': 'off',
'jsdoc/require-jsdoc': 'off',
},
},
eslintConfigPrettier,
];
Loading