 9bdcbe0447
			
		
	
	9bdcbe0447
	
	
	
		
			
			Major integrations and fixes: - Added BACKBEAT SDK integration for P2P operation timing - Implemented beat-aware status tracking for distributed operations - Added Docker secrets support for secure license management - Resolved KACHING license validation via HTTPS/TLS - Updated docker-compose configuration for clean stack deployment - Disabled rollback policies to prevent deployment failures - Added license credential storage (CHORUS-DEV-MULTI-001) Technical improvements: - BACKBEAT P2P operation tracking with phase management - Enhanced configuration system with file-based secrets - Improved error handling for license validation - Clean separation of KACHING and CHORUS deployment stacks 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
		
			
				
	
	
		
			23 lines
		
	
	
		
			586 B
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			23 lines
		
	
	
		
			586 B
		
	
	
	
		
			Go
		
	
	
	
	
	
| package util
 | |
| 
 | |
| import "time"
 | |
| 
 | |
| // TimeFormatIpfs is the format ipfs uses to represent time in string form.
 | |
| var TimeFormatIpfs = time.RFC3339Nano
 | |
| 
 | |
| // ParseRFC3339 parses an RFC3339Nano-formatted time stamp and
 | |
| // returns the UTC time.
 | |
| func ParseRFC3339(s string) (time.Time, error) {
 | |
| 	t, err := time.Parse(TimeFormatIpfs, s)
 | |
| 	if err != nil {
 | |
| 		return time.Time{}, err
 | |
| 	}
 | |
| 	return t.UTC(), nil
 | |
| }
 | |
| 
 | |
| // FormatRFC3339 returns the string representation of the
 | |
| // UTC value of the given time in RFC3339Nano format.
 | |
| func FormatRFC3339(t time.Time) string {
 | |
| 	return t.UTC().Format(TimeFormatIpfs)
 | |
| }
 |