mirror of
https://github.com/dadosfera/maestro.git
synced 2026-11-06 13:59:08 +00:00
Compare commits
13
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
24fce721e3 | ||
|
|
bdb82c2ce4 | ||
|
|
6d9ecc3568 | ||
|
|
7764447adc | ||
|
|
576fdecf89 | ||
|
|
3de1e90fa8 | ||
|
|
5e90950660 | ||
|
|
3ed26e648f | ||
|
|
fff3523152 | ||
|
|
19e4daeea4 | ||
|
|
8624d3f016 | ||
|
|
dc1d1400d8 | ||
|
|
06ba759ea3 |
@@ -56,9 +56,9 @@ jobs:
|
|||||||
|
|
||||||
- name: Install Helmfile
|
- name: Install Helmfile
|
||||||
run: |
|
run: |
|
||||||
wget https://github.com/helmfile/helmfile/releases/download/v0.148.0/helmfile_0.148.0_linux_amd64.tar.gz
|
curl -fsSLO https://github.com/helmfile/helmfile/releases/download/v0.148.0/helmfile_0.148.0_linux_amd64.tar.gz
|
||||||
tar -xzf helmfile_0.148.0_linux_amd64.tar.gz
|
tar -xzf helmfile_0.148.0_linux_amd64.tar.gz
|
||||||
mv helmfile /usr/local/bin/
|
sudo mv helmfile /usr/local/bin/
|
||||||
helmfile --version
|
helmfile --version
|
||||||
|
|
||||||
- name: Install Helm Diff Plugin
|
- name: Install Helm Diff Plugin
|
||||||
|
|||||||
@@ -4,9 +4,18 @@ metadata:
|
|||||||
annotations:
|
annotations:
|
||||||
nginx.ingress.kubernetes.io/whitelist-source-range: "69.49.241.121/32" # hostgator ip
|
nginx.ingress.kubernetes.io/whitelist-source-range: "69.49.241.121/32" # hostgator ip
|
||||||
nginx.ingress.kubernetes.io/proxy-body-size: "0"
|
nginx.ingress.kubernetes.io/proxy-body-size: "0"
|
||||||
|
nginx.ingress.kubernetes.io/proxy-read-timeout: "300"
|
||||||
|
nginx.ingress.kubernetes.io/proxy-connect-timeout: "300"
|
||||||
|
nginx.ingress.kubernetes.io/proxy-send-timeout: "300"
|
||||||
nginx.ingress.kubernetes.io/server-snippet: |
|
nginx.ingress.kubernetes.io/server-snippet: |
|
||||||
underscores_in_headers on;
|
underscores_in_headers on;
|
||||||
ignore_invalid_headers on;
|
ignore_invalid_headers on;
|
||||||
|
nginx.ingress.kubernetes.io/proxy-buffer-size: "16k"
|
||||||
|
nginx.ingress.kubernetes.io/proxy-buffers-number: "8"
|
||||||
|
nginx.ingress.kubernetes.io/proxy-busy-buffers-size: "64k"
|
||||||
|
{{- if .Values.maestro.restricted_ip}}
|
||||||
|
nginx.ingress.kubernetes.io/whitelist-source-range: {{ .Values.maestro.restricted_ip }}
|
||||||
|
{{- end }}
|
||||||
|
|
||||||
generation: 1
|
generation: 1
|
||||||
labels:
|
labels:
|
||||||
|
|||||||
@@ -0,0 +1,20 @@
|
|||||||
|
import jwt, { JwtPayload } from 'jsonwebtoken';
|
||||||
|
|
||||||
|
export function extractUserFrom(aRawJwt: string) {
|
||||||
|
const decodedToken = jwt.decode(aRawJwt, {
|
||||||
|
complete: true,
|
||||||
|
});
|
||||||
|
|
||||||
|
const payload = decodedToken.payload as JwtPayload;
|
||||||
|
|
||||||
|
return {
|
||||||
|
user_id: payload.user_id,
|
||||||
|
username: payload.username,
|
||||||
|
permissions: payload.permissions,
|
||||||
|
customer_id: payload.customer_id,
|
||||||
|
customer_name: payload.customer_name,
|
||||||
|
customer_tier: payload.customer_tier,
|
||||||
|
customer_modules: payload.customer_modules,
|
||||||
|
access_token: aRawJwt,
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -197,9 +197,11 @@ class CatalogService implements OnModuleInit {
|
|||||||
async getUserRolesIds(userId: string) {
|
async getUserRolesIds(userId: string) {
|
||||||
const result = await this.userService.findOneById(userId).catch(() => null);
|
const result = await this.userService.findOneById(userId).catch(() => null);
|
||||||
|
|
||||||
const roles_ids = result.user.roles.map((role) => role.id);
|
if (result) {
|
||||||
|
return result.user.roles.map((role) => role.id);
|
||||||
|
}
|
||||||
|
|
||||||
return roles_ids;
|
return [];
|
||||||
}
|
}
|
||||||
|
|
||||||
async searchDataAssets(
|
async searchDataAssets(
|
||||||
|
|||||||
@@ -1,29 +1,46 @@
|
|||||||
import { Body, Controller, Inject, Param, Post, Req } from '@nestjs/common';
|
import { Body, Controller, Inject, Param, Post, Req } from '@nestjs/common';
|
||||||
import { init } from 'mixpanel';
|
|
||||||
import { Authenticated } from 'src/decorators/authentication.decorator';
|
|
||||||
import { ApiInternalOnlyController } from 'src/decorators/swagger.decorator';
|
import { ApiInternalOnlyController } from 'src/decorators/swagger.decorator';
|
||||||
import { RequestUser, User } from 'src/decorators/user.decorator';
|
import { RequestUser } from 'src/decorators/user.decorator';
|
||||||
import { MixpanelService } from './mixpanel.service';
|
import { MixpanelService } from './mixpanel.service';
|
||||||
|
import { extractUserFrom } from 'src/authentication/extract-user';
|
||||||
|
import DadosferaLogger from '@dadosfera/dadosfera-logs';
|
||||||
|
|
||||||
@ApiInternalOnlyController()
|
@ApiInternalOnlyController()
|
||||||
@Controller('trackEvent')
|
@Controller('trackEvent')
|
||||||
export class MixpanelController {
|
export class MixpanelController {
|
||||||
|
logger: DadosferaLogger;
|
||||||
|
|
||||||
constructor(
|
constructor(
|
||||||
private mixpanelService: MixpanelService
|
@Inject(DadosferaLogger)
|
||||||
) {}
|
dadosferaLogger: DadosferaLogger,
|
||||||
|
private mixpanelService: MixpanelService,
|
||||||
|
) {
|
||||||
|
this.logger = dadosferaLogger.logger;
|
||||||
|
}
|
||||||
|
|
||||||
@Post(':id')
|
@Post(':id')
|
||||||
async trackEvent(
|
async trackEvent(
|
||||||
@Param('id') id,
|
@Param('id') id,
|
||||||
@Body() body,
|
@Body() body,
|
||||||
@User() user: RequestUser,
|
|
||||||
@Req() request
|
@Req() request
|
||||||
) {
|
) {
|
||||||
|
this.logger.info(`POST Track Event: ${id}`)
|
||||||
delete body.info;
|
delete body.info;
|
||||||
|
|
||||||
|
const anonymousUser = {
|
||||||
|
username: "anonymous",
|
||||||
|
customer_name: "anonymous"
|
||||||
|
} as RequestUser
|
||||||
|
|
||||||
|
const hasToken = request.headers['authorization'];
|
||||||
|
|
||||||
|
const user = hasToken ? extractUserFrom(hasToken) : anonymousUser;
|
||||||
|
|
||||||
|
this.logger.info(`Has user: ${typeof hasToken == "string"}`)
|
||||||
|
|
||||||
await this.mixpanelService.track(id, user, request, body)
|
await this.mixpanelService.track(id, user, request, body)
|
||||||
|
|
||||||
|
this.logger.info(`Event successful`)
|
||||||
return { id, body, user: user.username };
|
return { id, body, user: user.username };
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user