logstack-zee
Version:
Complete Node.js logging solution with 6 integration methods, S3 bidirectional operations, advanced analytics, and multi-cloud storage support for enterprise-scale applications.
134 lines (98 loc) โข 3.7 kB
Markdown
# โ
S3 File Access - 180 Days Updated!
## ๐ฏ Updated Configuration
**Haan bilkul! Ab aap 180 days ki files ko access kar sakte hain!**
### ๐
Updated Settings:
```javascript
// Default user permissions ab 180 days
const defaultPermissions = {
read: true,
write: false,
delete: false,
dateRestriction: true,
dayLimit: 180, // โ
180 days access (matches S3 retention)
serviceRestriction: false,
allowedServices: [],
};
```
### โ๏ธ Production Configuration:
```javascript
// S3 Security Configuration
s3Security: {
enabled: true,
defaultExpiration: 3600, // 1 hour for pre-signed URLs
maxFileAge: 180, // โ
Users can access files max 180 days old
accessControl: true,
},
```
## ๐ Perfect Alignment with Retention Policy
### Database vs S3 vs Access Policy:
| Component | Retention Period | Purpose |
| -------------------- | ---------------- | ------------------------------ |
| **MongoDB Database** | 14 days | Active/recent logs for queries |
| **S3 Storage** | 180 days | Long-term file storage |
| **User Access** | 180 days | โ
Can access all S3 files |
### ๐ก Logic:
- **0-14 days**: Files available in both DB + S3
- **15-180 days**: Files only in S3 (DB cleaned up)
- **180+ days**: Files deleted from S3 (no access)
## ๐ก๏ธ Security Flow Remains Same
### Access Steps:
1. **User Authentication** - Bearer token required
2. **Generate Access Token** - Request file access permission
3. **File Permission Check** - โ
Now checks for 180 days instead of 30
4. **Pre-signed URL** - Generate secure download link
5. **Download File** - Access file securely
### Example Access Timeline:
```javascript
// File uploaded on: Jan 1, 2025
// Current date: June 1, 2025 (150 days later)
// Before Update: โ Access denied (30 days limit)
// After Update: โ
Access granted (180 days limit)
```
## ๐งช Test Updated Settings
### Quick Test:
```bash
node -e "
const { S3SecurityManager } = require('./lib/s3Security');
const manager = new S3SecurityManager({
accessKeyId: 'test',
secretAccessKey: 'test',
region: 'us-east-1',
bucket: 'test'
});
manager.getUserPermissions('user123').then(perms =>
console.log('๐
User can access files up to', perms.dayLimit, 'days old')
);"
```
**Output**: `๐
User can access files up to 180 days old`
## ๐ Updated Files
### Files Modified:
- โ
`lib/s3Security.js` - dayLimit: 30 โ 180
- โ
`production-setup.js` - maxFileAge: 30 โ 180
- โ
`S3_SECURITY_GUIDE.md` - Documentation updated
- โ
`S3_SECURITY_IMPLEMENTATION_SUMMARY.md` - Summary updated
### Environment Variable:
```bash
# Update your .env file
S3_MAX_FILE_AGE_DAYS=180
```
## ๐ Result
**Ab aap complete 180 days ki files ko access kar sakte hain!**
### โ
Benefits:
- **Full S3 retention access** - Saari stored files accessible
- **Consistent policy** - S3 retention aur user access aligned
- **No data loss** - Koi file access limitation nahi
- **Still secure** - Pre-signed URLs aur authentication required
### ๐ Security Features Remain:
- โ
Authentication required
- โ
Pre-signed URLs (1 hour expiry)
- โ
Access tokens with permissions
- โ
Complete access logging
- โ
Token management & revocation
### ๐ Access Pattern:
```
Day 1-14: Database + S3 โ
(Fast access)
Day 15-180: S3 Only โ
(Secure download)
Day 180+: No Access โ (Files deleted)
```
**Perfect! Ab aap ke pass complete 180 days ka file access hai with full security! ๐**