Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
108 changes: 0 additions & 108 deletions .env.csp.example

This file was deleted.

60 changes: 0 additions & 60 deletions .env.development

This file was deleted.

86 changes: 6 additions & 80 deletions .env.example
Original file line number Diff line number Diff line change
@@ -1,82 +1,8 @@
# Application Configuration
NODE_ENV=development
# Environment Variables
DATABASE_URL=postgresql://user:password@localhost:5432/propchain
PORT=3000
HOST=0.0.0.0
API_PREFIX=api
# CORS Configuration:
# - Development: Use specific localhost origins (e.g., http://localhost:3000,http://localhost:5173)
# - Production/Staging: Use specific production domains (e.g., https://propchain.io,https://app.propchain.io)
# - Wildcard '*' is only allowed in development/test environments
# - Multiple origins can be comma-separated: https://example.com,https://api.example.com
CORS_ORIGIN=http://localhost:3000,http://localhost:5173
SWAGGER_ENABLED=true

# Database Configuration
DATABASE_URL=postgresql://postgres:password@localhost:5432/propchain

# Redis Configuration
REDIS_HOST=localhost
REDIS_PORT=6379
REDIS_PASSWORD=
REDIS_DB=0

# Security Configuration
JWT_SECRET=your-super-secret-jwt-key-32-chars-minimum
JWT_EXPIRES_IN=1h
JWT_REFRESH_SECRET=your-super-secret-refresh-key-32-chars
JWT_REFRESH_EXPIRES_IN=7d
ENCRYPTION_KEY=your-32-char-encryption-key-here
SESSION_SECRET=your-session-secret-key-32-chars-minimum
BCRYPT_ROUNDS=12

# Blockchain/Web3 Configuration
BLOCKCHAIN_NETWORK=sepolia
RPC_URL=https://sepolia.infura.io/v3/YOUR_PROJECT_ID
PRIVATE_KEY=0x1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef
ETHERSCAN_API_KEY=your-etherscan-api-key
WEB3_STORAGE_TOKEN=your-web3-storage-token

# IPFS Configuration
IPFS_GATEWAY_URL=https://ipfs.io/ipfs/
IPFS_API_URL=https://ipfs.infura.io:5001
IPFS_PROJECT_ID=your-ipfs-project-id
IPFS_PROJECT_SECRET=your-ipfs-project-secret

# Email Configuration
SMTP_HOST=smtp.mailtrap.io
SMTP_PORT=587
SMTP_USER=your-smtp-user
SMTP_PASS=your-smtp-pass
EMAIL_FROM=noreply@propchain.io

# External Services Configuration
COINGECKO_API_KEY=your-coingecko-api-key
OPENSEA_API_KEY=your-opensea-api-key
ZILLOW_API_KEY=your-zillow-api-key

# File Upload Security Configuration
MAX_FILE_SIZE=10485760
MAX_FILES_PER_UPLOAD=10
ALLOWED_FILE_TYPES=image/jpeg,image/png,image/gif,application/pdf,application/msword,application/vnd.openxmlformats-officedocument.wordprocessingml.document
VALIDATE_MAGIC_NUMBERS=true
MALWARE_SCANNING_ENABLED=true
CLAMAV_HOST=localhost
CLAMAV_PORT=3310
CLAMAV_TIMEOUT=30000
MAX_SCAN_SIZE_BYTES=26214400
REDFIN_API_KEY=your-redfin-api-key
CORE_LOGIC_API_KEY=your-core-logic-api-key
MAXMIND_LICENSE_KEY=your-maxmind-license-key

# Storage Configuration
STORAGE_PROVIDER=memory
STORAGE_SIGNED_URL_EXPIRES_IN=900
STORAGE_SIGNING_SECRET=local-storage-signing-secret
NODE_ENV=development

# S3 Configuration (if STORAGE_PROVIDER=s3)
S3_BUCKET=propchain-documents
S3_REGION=us-east-1
S3_ACCESS_KEY_ID=your-s3-access-key-id
S3_SECRET_ACCESS_KEY=your-s3-secret-access-key
S3_ENDPOINT=
S3_FORCE_PATH_STYLE=false
# JWT Configuration
JWT_SECRET=your-super-secret-jwt-key-change-in-production
JWT_EXPIRES_IN=7d
28 changes: 0 additions & 28 deletions .env.production

This file was deleted.

28 changes: 0 additions & 28 deletions .env.staging

This file was deleted.

48 changes: 8 additions & 40 deletions .eslintrc.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,57 +2,25 @@ module.exports = {
parser: '@typescript-eslint/parser',
parserOptions: {
project: 'tsconfig.json',
tsconfigRootDir: __dirname,
sourceType: 'module',
},
plugins: ['@typescript-eslint/eslint-plugin'],
extends: ['plugin:@typescript-eslint/recommended', 'plugin:prettier/recommended'],
extends: [
'plugin:@typescript-eslint/recommended',
'plugin:prettier/recommended',
],
root: true,
env: {
node: true,
jest: true,
},
ignorePatterns: ['.eslintrc.js', 'dist/', 'node_modules/', 'coverage/', 'test/', '**/*.spec.ts', '**/*.e2e-spec.ts'],
ignorePatterns: ['.eslintrc.js', 'dist/', 'node_modules/'],
rules: {
'@typescript-eslint/interface-name-prefix': 'off',
'@typescript-eslint/explicit-function-return-type': 'off',
'@typescript-eslint/explicit-module-boundary-types': 'off',
'@typescript-eslint/no-explicit-any': 'off',
'@typescript-eslint/no-unused-vars': 'off',
'@typescript-eslint/ban-ts-comment': 'warn',
'@typescript-eslint/no-non-null-assertion': 'warn',
'@typescript-eslint/no-var-requires': 'error',
'prettier/prettier': 'error',
'no-console': 'off',
'no-debugger': 'error',
'prefer-const': 'error',
'no-var': 'error',
'object-shorthand': 'error',
'prefer-template': 'error',
'prefer-arrow-callback': 'error',
'arrow-spacing': 'error',
'comma-dangle': ['error', 'always-multiline'],
semi: ['error', 'always'],
quotes: 'off',
indent: 'off',
'@typescript-eslint/indent': 'off',
'max-len': 'off',
'eol-last': 'error',
'no-trailing-spaces': 'error',
'padded-blocks': ['error', 'never'],
'space-before-function-paren': [
'error',
{
anonymous: 'always',
named: 'never',
asyncArrow: 'always',
},
],
'keyword-spacing': 'error',
'space-infix-ops': 'error',
'object-curly-spacing': ['error', 'always'],
'array-bracket-spacing': ['error', 'never'],
'brace-style': ['error', '1tbs'],
curly: 'error',
'@typescript-eslint/no-explicit-any': 'warn',
'@typescript-eslint/no-unused-vars': ['warn', { argsIgnorePattern: '^_' }],
'no-console': 'warn',
},
};
Loading
Loading