secureshare-sdk
Version:
Enterprise privacy-preserving data sharing SDK with policy engine, audit logging, and compliance features
202 lines (157 loc) • 4.83 kB
Markdown
# SecureShare SDK
Enterprise privacy-preserving data sharing SDK with policy engine, audit logging, and compliance features.
## Features
- **Policy Engine**: Define and enforce data access policies
- **Privacy Protection**: Tokenization, masking, and encryption
- **Audit Logging**: Comprehensive audit trails for compliance
- **Observer Effect**: Real-time anomaly detection and adaptive responses
- **Multi-tenant Support**: Isolated data and policies per tenant
- **Compliance Ready**: GDPR, HIPAA, CCPA support
## Installation
```bash
npm install secureshare-sdk
```
## Quick Start
```javascript
const { SecureShare, PolicyEvaluator, AuditLogger } = require('secureshare-sdk');
// Create SDK instance
const sdk = new SecureShare({ auditEnabled: true });
// Add a policy
await sdk.addPolicy({
name: 'PII Protection',
rules: [{
condition: "data.type == 'PII'",
action: 'tokenize',
constraints: ['user.role == "analyst"']
}]
});
// Process data
const result = await sdk.processData(
{ name: 'John Doe', email: 'john@example.com', type: 'PII' },
{ user: { role: 'analyst' }, purpose: 'analysis' }
);
console.log(result);
// Output: { name: '***', email: '***', type: 'PII' }
```
## API Reference
### Core Classes
#### `SecureShare`
Main SDK class for data processing and policy management.
```javascript
const sdk = new SecureShare({
auditEnabled: true // Enable audit logging
});
```
**Methods:**
- `addPolicy(policy)`: Add a new policy
- `processData(data, context)`: Process data according to policies
- `evaluateData(data, context)`: Evaluate data without processing
- `getAuditLogs(filters)`: Retrieve audit logs
#### `PolicyEvaluator`
Evaluate policies against data and context.
```javascript
const evaluator = new PolicyEvaluator(policy);
const result = evaluator.evaluate(context);
```
#### `AuditLogger`
Log audit events for compliance.
```javascript
AuditLogger.logAuditEvent({
action: 'data_accessed',
user: 'user123',
timestamp: new Date(),
details: { dataType: 'PII' }
});
```
### Privacy Protection
#### Tokenization
```javascript
const { Tokenizer } = require('secureshare-sdk');
const token = Tokenizer.tokenize('sensitive-data');
const original = Tokenizer.detokenize(token);
```
#### Masking
```javascript
const { Masking } = require('secureshare-sdk');
const masked = Masking.maskValue('john.doe@example.com');
// Output: '***@***.com'
```
#### Encryption
```javascript
const { Encryption } = require('secureshare-sdk');
const encrypted = Encryption.encryptValue('sensitive-data');
const decrypted = Encryption.decryptValue(encrypted);
```
### Policy Types
```javascript
const policy = {
name: 'Financial Data Policy',
rules: [{
condition: "data.type == 'financial'",
action: 'encrypt',
constraints: ['user.role == "manager"']
}]
};
```
**Actions:**
- `allow`: Allow access to data
- `deny`: Deny access to data
- `tokenize`: Replace with tokens
- `mask`: Mask sensitive values
- `encrypt`: Encrypt data
- `log`: Log access without modification
## Examples
### Express.js Middleware
```javascript
const express = require('express');
const { createSecureShareMiddleware } = require('secureshare-sdk');
const app = express();
const sdk = new SecureShare();
app.use('/api/data', createSecureShareMiddleware({
secureShare: sdk,
policyContext: (req) => ({
user: req.user,
purpose: req.query.purpose
})
}));
```
### Observer Effect Demo
```javascript
const { ObserverEffectEngine } = require('secureshare-sdk');
const observer = new ObserverEffectEngine(db);
const result = await observer.evaluateObserverEffect({
userId: 'user123',
userRole: 'analyst',
dataType: 'PII',
accessPattern: 'bulk_export'
});
```
## Configuration
### Environment Variables
```bash
SECURESHARE_AUDIT_LOG=./audit.log
SECURESHARE_JWT_SECRET=your-secret-key
SECURESHARE_DB_URL=postgresql://user:pass@localhost/db
```
### Database Support
- PostgreSQL
- Redis
- MongoDB
## Compliance
The SDK supports various compliance frameworks:
- **GDPR**: Data protection and privacy
- **HIPAA**: Healthcare data protection
- **CCPA**: California consumer privacy
- **SOC 2**: Security controls
## Contributing
1. Fork the repository
2. Create a feature branch
3. Make your changes
4. Add tests
5. Submit a pull request
## License
MIT License - see LICENSE file for details.
## Support
- Documentation: [GitHub Wiki](https://github.com/your-org/secureshare-sdk/wiki)
- Issues: [GitHub Issues](https://github.com/your-org/secureshare-sdk/issues)
- Discussions: [GitHub Discussions](https://github.com/your-org/secureshare-sdk/discussions)