🔐 feat: Granular Role-based Permissions + Entra ID Group Discovery (#7804)

This commit is contained in:
Danny Avila 2025-06-23 10:54:25 -04:00
parent 6c9a29b6cf
commit f55cdc9b7f
No known key found for this signature in database
GPG key ID: BF31EEB2C5CA0956
99 changed files with 11321 additions and 621 deletions

View file

@ -0,0 +1 @@
export * from './transactions';

View file

@ -0,0 +1,55 @@
import logger from '~/config/winston';
/**
* Checks if the connected MongoDB deployment supports transactions
* This requires a MongoDB replica set configuration
*
* @returns True if transactions are supported, false otherwise
*/
export const supportsTransactions = async (
mongoose: typeof import('mongoose'),
): Promise<boolean> => {
try {
const session = await mongoose.startSession();
try {
session.startTransaction();
await mongoose.connection.db?.collection('__transaction_test__').findOne({}, { session });
await session.abortTransaction();
logger.debug('MongoDB transactions are supported');
return true;
} catch (transactionError: unknown) {
logger.debug(
'MongoDB transactions not supported (transaction error):',
(transactionError as Error)?.message || 'Unknown error',
);
return false;
} finally {
await session.endSession();
}
} catch (error) {
logger.debug(
'MongoDB transactions not supported (session error):',
(error as Error)?.message || 'Unknown error',
);
return false;
}
};
/**
* Gets whether the current MongoDB deployment supports transactions
* Caches the result for performance
*
* @returns True if transactions are supported, false otherwise
*/
export const getTransactionSupport = async (
mongoose: typeof import('mongoose'),
transactionSupportCache: boolean | null,
): Promise<boolean> => {
let transactionsSupported = false;
if (transactionSupportCache === null) {
transactionsSupported = await supportsTransactions(mongoose);
}
return transactionsSupported;
};