Compare commits
7 Commits
feature/1-
...
feature/8-
| Author | SHA1 | Date | |
|---|---|---|---|
| adfbd5f8a3 | |||
| 72683c9ae2 | |||
| fcffd65d33 | |||
| 09f398c63f | |||
| b3e1b31750 | |||
| 17b57648d5 | |||
| ff8aaba741 |
@@ -15,8 +15,11 @@ export class AuthGuard extends PassportAuthGuard('azure-ad') implements CanActiv
|
|||||||
'isPublic',
|
'isPublic',
|
||||||
context.getHandler()
|
context.getHandler()
|
||||||
);
|
);
|
||||||
|
const req = context.switchToHttp().getRequest();
|
||||||
|
const authHeader = req.headers.authorization;
|
||||||
|
const token = authHeader && authHeader.split(' ')[1];
|
||||||
|
|
||||||
if (isPublic) {
|
if (isPublic && !token) {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
1
libs/modules/src/azTable/az-table.constants.ts
Normal file
1
libs/modules/src/azTable/az-table.constants.ts
Normal file
@@ -0,0 +1 @@
|
|||||||
|
export const TABLE_OPTIONS = 'TABLE_OPTIONS';
|
||||||
4
libs/modules/src/azTable/az-table.interface.ts
Normal file
4
libs/modules/src/azTable/az-table.interface.ts
Normal file
@@ -0,0 +1,4 @@
|
|||||||
|
export interface TableOptions {
|
||||||
|
accountName: string;
|
||||||
|
accountKey: string;
|
||||||
|
}
|
||||||
21
libs/modules/src/azTable/az-table.module.ts
Normal file
21
libs/modules/src/azTable/az-table.module.ts
Normal file
@@ -0,0 +1,21 @@
|
|||||||
|
import { Module, DynamicModule } from '@nestjs/common';
|
||||||
|
import { TableService } from './az-table.service';
|
||||||
|
import { TableOptions } from './az-table.interface';
|
||||||
|
import { TABLE_OPTIONS } from './az-table.constants';
|
||||||
|
|
||||||
|
@Module({})
|
||||||
|
export class TableModule {
|
||||||
|
static register(options: TableOptions): DynamicModule {
|
||||||
|
return {
|
||||||
|
module: TableModule,
|
||||||
|
providers: [
|
||||||
|
{
|
||||||
|
provide: TABLE_OPTIONS,
|
||||||
|
useValue: options
|
||||||
|
},
|
||||||
|
TableService
|
||||||
|
],
|
||||||
|
exports: [TableService]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
19
libs/modules/src/azTable/az-table.service.ts
Normal file
19
libs/modules/src/azTable/az-table.service.ts
Normal file
@@ -0,0 +1,19 @@
|
|||||||
|
import { Inject, Injectable } from '@nestjs/common';
|
||||||
|
import { TableOptions } from './az-table.interface';
|
||||||
|
import { TABLE_OPTIONS } from './az-table.constants';
|
||||||
|
import { TableClient, AzureNamedKeyCredential } from '@azure/data-tables';
|
||||||
|
|
||||||
|
@Injectable()
|
||||||
|
export class TableService {
|
||||||
|
constructor(
|
||||||
|
@Inject(TABLE_OPTIONS)
|
||||||
|
private tablesOptions: TableOptions
|
||||||
|
) {}
|
||||||
|
|
||||||
|
async getTableClient(tableName: string): Promise<TableClient> {
|
||||||
|
const credential: AzureNamedKeyCredential = new AzureNamedKeyCredential(this.tablesOptions.accountName, this.tablesOptions.accountKey);
|
||||||
|
const tableClient: TableClient = new TableClient(`https://${this.tablesOptions.accountName}.table.core.windows.net`, tableName, credential);
|
||||||
|
|
||||||
|
return tableClient;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -3,6 +3,12 @@
|
|||||||
export * from './azAppConfig/az-app-config.module';
|
export * from './azAppConfig/az-app-config.module';
|
||||||
export * from './azAppConfig/az-app-config.service';
|
export * from './azAppConfig/az-app-config.service';
|
||||||
|
|
||||||
|
// Azure Data Tables
|
||||||
|
|
||||||
|
export * from './azTable/az-table.module';
|
||||||
|
export * from './azTable/az-table.service';
|
||||||
|
export { TableClient } from '@azure/data-tables';
|
||||||
|
|
||||||
// Auth
|
// Auth
|
||||||
|
|
||||||
export * from './auth/auth.module';
|
export * from './auth/auth.module';
|
||||||
|
|||||||
70
package-lock.json
generated
70
package-lock.json
generated
@@ -1,15 +1,16 @@
|
|||||||
{
|
{
|
||||||
"name": "@noahspan/noahspan-modules",
|
"name": "@noahspan/noahspan-modules",
|
||||||
"version": "0.2.9",
|
"version": "0.3.5",
|
||||||
"lockfileVersion": 3,
|
"lockfileVersion": 3,
|
||||||
"requires": true,
|
"requires": true,
|
||||||
"packages": {
|
"packages": {
|
||||||
"": {
|
"": {
|
||||||
"name": "@noahspan/noahspan-modules",
|
"name": "@noahspan/noahspan-modules",
|
||||||
"version": "0.2.9",
|
"version": "0.3.5",
|
||||||
"license": "UNLICENSED",
|
"license": "UNLICENSED",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@azure/app-configuration": "^1.6.0",
|
"@azure/app-configuration": "^1.6.0",
|
||||||
|
"@azure/data-tables": "^13.2.2",
|
||||||
"@azure/identity": "^4.2.0",
|
"@azure/identity": "^4.2.0",
|
||||||
"@azure/msal-node": "^2.9.2",
|
"@azure/msal-node": "^2.9.2",
|
||||||
"@microsoft/microsoft-graph-client": "^3.0.7",
|
"@microsoft/microsoft-graph-client": "^3.0.7",
|
||||||
@@ -438,6 +439,45 @@
|
|||||||
"node": ">=18.0.0"
|
"node": ">=18.0.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"node_modules/@azure/core-xml": {
|
||||||
|
"version": "1.4.3",
|
||||||
|
"resolved": "https://registry.npmjs.org/@azure/core-xml/-/core-xml-1.4.3.tgz",
|
||||||
|
"integrity": "sha512-D6G7FEmDiTctPKuWegX2WTrS1enKZwqYwdKTO6ZN6JMigcCehlT0/CYl+zWpI9vQ9frwwp7GQT3/owaEXgnOsA==",
|
||||||
|
"dependencies": {
|
||||||
|
"fast-xml-parser": "^4.3.2",
|
||||||
|
"tslib": "^2.6.2"
|
||||||
|
},
|
||||||
|
"engines": {
|
||||||
|
"node": ">=18.0.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/@azure/data-tables": {
|
||||||
|
"version": "13.2.2",
|
||||||
|
"resolved": "https://registry.npmjs.org/@azure/data-tables/-/data-tables-13.2.2.tgz",
|
||||||
|
"integrity": "sha512-Dq2Aq0mMMF0BPzYQKdBY/OtO7VemP/foh6z+mJpUO1hRL+65C1rGQUJf20LJHotSyU8wHb4HJzOs+Z50GXSy1w==",
|
||||||
|
"dependencies": {
|
||||||
|
"@azure/core-auth": "^1.3.0",
|
||||||
|
"@azure/core-client": "^1.0.0",
|
||||||
|
"@azure/core-paging": "^1.1.1",
|
||||||
|
"@azure/core-rest-pipeline": "^1.1.0",
|
||||||
|
"@azure/core-tracing": "^1.0.0",
|
||||||
|
"@azure/core-xml": "^1.0.0",
|
||||||
|
"@azure/logger": "^1.0.0",
|
||||||
|
"tslib": "^2.2.0",
|
||||||
|
"uuid": "^8.3.0"
|
||||||
|
},
|
||||||
|
"engines": {
|
||||||
|
"node": ">=14.0.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/@azure/data-tables/node_modules/uuid": {
|
||||||
|
"version": "8.3.2",
|
||||||
|
"resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz",
|
||||||
|
"integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==",
|
||||||
|
"bin": {
|
||||||
|
"uuid": "dist/bin/uuid"
|
||||||
|
}
|
||||||
|
},
|
||||||
"node_modules/@azure/identity": {
|
"node_modules/@azure/identity": {
|
||||||
"version": "4.2.0",
|
"version": "4.2.0",
|
||||||
"resolved": "https://registry.npmjs.org/@azure/identity/-/identity-4.2.0.tgz",
|
"resolved": "https://registry.npmjs.org/@azure/identity/-/identity-4.2.0.tgz",
|
||||||
@@ -4772,6 +4812,27 @@
|
|||||||
"resolved": "https://registry.npmjs.org/fast-safe-stringify/-/fast-safe-stringify-2.1.1.tgz",
|
"resolved": "https://registry.npmjs.org/fast-safe-stringify/-/fast-safe-stringify-2.1.1.tgz",
|
||||||
"integrity": "sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA=="
|
"integrity": "sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA=="
|
||||||
},
|
},
|
||||||
|
"node_modules/fast-xml-parser": {
|
||||||
|
"version": "4.4.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/fast-xml-parser/-/fast-xml-parser-4.4.1.tgz",
|
||||||
|
"integrity": "sha512-xkjOecfnKGkSsOwtZ5Pz7Us/T6mrbPQrq0nh+aCO5V9nk5NLWmasAHumTKjiPJPWANe+kAZ84Jc8ooJkzZ88Sw==",
|
||||||
|
"funding": [
|
||||||
|
{
|
||||||
|
"type": "github",
|
||||||
|
"url": "https://github.com/sponsors/NaturalIntelligence"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "paypal",
|
||||||
|
"url": "https://paypal.me/naturalintelligence"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"dependencies": {
|
||||||
|
"strnum": "^1.0.5"
|
||||||
|
},
|
||||||
|
"bin": {
|
||||||
|
"fxparser": "src/cli/cli.js"
|
||||||
|
}
|
||||||
|
},
|
||||||
"node_modules/fastq": {
|
"node_modules/fastq": {
|
||||||
"version": "1.17.1",
|
"version": "1.17.1",
|
||||||
"resolved": "https://registry.npmjs.org/fastq/-/fastq-1.17.1.tgz",
|
"resolved": "https://registry.npmjs.org/fastq/-/fastq-1.17.1.tgz",
|
||||||
@@ -8644,6 +8705,11 @@
|
|||||||
"url": "https://github.com/sponsors/sindresorhus"
|
"url": "https://github.com/sponsors/sindresorhus"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"node_modules/strnum": {
|
||||||
|
"version": "1.0.5",
|
||||||
|
"resolved": "https://registry.npmjs.org/strnum/-/strnum-1.0.5.tgz",
|
||||||
|
"integrity": "sha512-J8bbNyKKXl5qYcR36TIO8W3mVGVHrmmxsd5PAItGkmyzwJvybiw2IVq5nqd0i4LSNSkB/sx9VHllbfFdr9k1JA=="
|
||||||
|
},
|
||||||
"node_modules/superagent": {
|
"node_modules/superagent": {
|
||||||
"version": "8.1.2",
|
"version": "8.1.2",
|
||||||
"resolved": "https://registry.npmjs.org/superagent/-/superagent-8.1.2.tgz",
|
"resolved": "https://registry.npmjs.org/superagent/-/superagent-8.1.2.tgz",
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "@noahspan/noahspan-modules",
|
"name": "@noahspan/noahspan-modules",
|
||||||
"version": "0.3.5",
|
"version": "0.4.0",
|
||||||
"description": "",
|
"description": "",
|
||||||
"author": "",
|
"author": "",
|
||||||
"license": "UNLICENSED",
|
"license": "UNLICENSED",
|
||||||
@@ -25,6 +25,7 @@
|
|||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@azure/app-configuration": "^1.6.0",
|
"@azure/app-configuration": "^1.6.0",
|
||||||
|
"@azure/data-tables": "^13.2.2",
|
||||||
"@azure/identity": "^4.2.0",
|
"@azure/identity": "^4.2.0",
|
||||||
"@azure/msal-node": "^2.9.2",
|
"@azure/msal-node": "^2.9.2",
|
||||||
"@microsoft/microsoft-graph-client": "^3.0.7",
|
"@microsoft/microsoft-graph-client": "^3.0.7",
|
||||||
|
|||||||
Reference in New Issue
Block a user