7 Commits

Author SHA1 Message Date
adfbd5f8a3 adding optional auth to guard 2024-09-24 08:48:10 -05:00
72683c9ae2 adding optional auth to guard 2024-09-24 08:47:52 -05:00
fcffd65d33 Feature/3 add az table module (#7)
* adding azure table client module

* adding azure table client module

* adding azure table client module

* adding azure table client module

* adding azure table client module
2024-08-11 19:51:23 -05:00
09f398c63f Feature/3 add az table module (#6)
* adding azure table client module

* adding azure table client module

* adding azure table client module
2024-08-11 19:03:01 -05:00
b3e1b31750 add az table module (#5)
* adding azure table client module

* adding azure table client module
2024-08-11 18:43:50 -05:00
17b57648d5 adding azure table client module (#4) 2024-08-11 18:26:45 -05:00
ff8aaba741 Merge pull request #2 from noahspannbauer/feature/1-update-getmsgraphauth-with-scopes-parameter
updating getMsGraphAuth with scopes parameter
2024-07-14 14:30:49 -05:00
8 changed files with 125 additions and 4 deletions

View File

@@ -15,8 +15,11 @@ export class AuthGuard extends PassportAuthGuard('azure-ad') implements CanActiv
'isPublic',
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;
}

View File

@@ -0,0 +1 @@
export const TABLE_OPTIONS = 'TABLE_OPTIONS';

View File

@@ -0,0 +1,4 @@
export interface TableOptions {
accountName: string;
accountKey: string;
}

View 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]
}
}
}

View 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;
}
}

View File

@@ -3,6 +3,12 @@
export * from './azAppConfig/az-app-config.module';
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
export * from './auth/auth.module';

70
package-lock.json generated
View File

@@ -1,15 +1,16 @@
{
"name": "@noahspan/noahspan-modules",
"version": "0.2.9",
"version": "0.3.5",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "@noahspan/noahspan-modules",
"version": "0.2.9",
"version": "0.3.5",
"license": "UNLICENSED",
"dependencies": {
"@azure/app-configuration": "^1.6.0",
"@azure/data-tables": "^13.2.2",
"@azure/identity": "^4.2.0",
"@azure/msal-node": "^2.9.2",
"@microsoft/microsoft-graph-client": "^3.0.7",
@@ -438,6 +439,45 @@
"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": {
"version": "4.2.0",
"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",
"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": {
"version": "1.17.1",
"resolved": "https://registry.npmjs.org/fastq/-/fastq-1.17.1.tgz",
@@ -8644,6 +8705,11 @@
"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": {
"version": "8.1.2",
"resolved": "https://registry.npmjs.org/superagent/-/superagent-8.1.2.tgz",

View File

@@ -1,6 +1,6 @@
{
"name": "@noahspan/noahspan-modules",
"version": "0.3.5",
"version": "0.4.0",
"description": "",
"author": "",
"license": "UNLICENSED",
@@ -25,6 +25,7 @@
},
"dependencies": {
"@azure/app-configuration": "^1.6.0",
"@azure/data-tables": "^13.2.2",
"@azure/identity": "^4.2.0",
"@azure/msal-node": "^2.9.2",
"@microsoft/microsoft-graph-client": "^3.0.7",